题解 | #扑克牌大小#
扑克牌大小
https://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb
这道题初看很复杂 但仔细思考之后 因为输入的牌型都是标准牌型 相较于斗地主之类的游戏已经简化了很多,归纳总结下来只需要考虑牌的数量相等和不相等两种情况即可 完整代码如下:
while (line = readline()) { let arr = line.split('-').map(x => x.split(' ')); let baseArr = '3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER'.split(' '); let len1 = arr[0].length; let len2 = arr[1].length; //相等的情况最简单,只需要考虑两手牌最小的牌在baseArr中的index即可,哪个index大,相对应的哪手牌就大; if (len1 == len2) { baseArr.indexOf(arr[0][0]) > baseArr.indexOf(arr[1][0]) ? console.log(arr[0].join(' ')) : console.log(arr[1].join(' ')) } //两手牌的数量不相等时先考虑两手牌中有没有王炸,再考虑有没有普通炸弹,剩下的情况输出"ERROR"即可; else if (len1 != len2) { line.includes('joker JOKER') ? console.log('joker JOKER') : len1 == 4 ? console.log(arr[0].join(' ')) : len2 == 4 ? console.log(arr[1].join(' ')) : console.log('ERROR'); } }