题解 | #扑克牌大小#

扑克牌大小

https://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    //3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER
    //每手牌可能是个子、对子、顺子(连续5张)、三个、炸弹(四个)和对王中的一种
    //除了炸弹和对王可以和所有牌比较之外,其他类型的牌只能跟相同类型的存在比较关系
    const [first,second] = (await readline()).split("-").map(item=>item.split(" "));
    const order = ['3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A', '2', 'joker', 'JOKER'];
    const isBomb = (list) => {
        if(list.length !=2 && list.length !=4) return false;
        if(list.length == 2) return (list.join(" ") === "joker JOKER"||list.join(" ") === "JOKER joker")?"JOKER":false;
        if(list.length == 4 && (new Set(list)).size == 1) return list[0];
    }
    if(isBomb(first) && !isBomb(second)){
        console.log(first.join(" "));
    }else if(!isBomb(first) && isBomb(second)){
        console.log(second.join(" "));
    }else if(isBomb(first) && isBomb(second)){
        console.log(order.indexOf(first[0])>order.indexOf(second[0])?first.join(" "):second.join(" "));
    }else if(first.length != second.length){
        console.log("ERROR")
    }else {
        console.log(order.indexOf(first[0])>order.indexOf(second[0])?first.join(" "):second.join(" "));
    }

}()

华为OD,我昵称“od400” 文章被收录于专栏

华为OD机试刷题历程,因涉及华为权益,牛客不允许更新了。我昵称“od400”,某博客继续更新。

全部评论

相关推荐

02-02 17:27
已编辑
北京邮电大学 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务