题目链接:
https://www.nowcoder.com/practice/0a92c75f5d6b4db28fcfa3e65e5c9b3f?tpId=49&&tqId=29277&rp=1&ru=/activity/oj&qru=/ta/2016test/question-ranking
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String[] pp = str.split("-");//将 pp 字符串用 - 隔开
String[] p1 = pp[0].split(" ");//pp[0]表示第一副牌
String[] p2 = pp[1].split(" ");//pp[1]表示第二副牌
String p = "34567891JJQKA2";// 1 代表10的位置
if(pp[0].equals("joker JOKER") || pp[1].equals("joker JOKER")){
//如果有任何一副牌出现大小王, 直接输出大小王
System.out.println("joker JOKER");
}else if(p1.length == p2.length){
//如果牌 1 的长度 = 牌 2 的长度
//那么只需要比较第一个牌的大小(题目已给顺子从小到大排列且除了大小王和炸弹之前任何两副牌都不会相同)
//这是 个子 顺子 对子 三个 的情况
if(p.indexOf(p1[0].substring(0, 1)) > p.indexOf(p2[0].substring(0, 1))){
//假设第一副牌的第一个数是10
//p1[0].substring(0, 1)则表示 1
//只需要找到 p 中 1 的位置即可
//第一副牌的第一个数大于第二副牌的第一个数
//输出第一副牌
System.out.println(pp[0]);
}else{
System.out.println(pp[1]);
}
}else if(p1.length == 4){
//长度 = 4表示该副牌是炸弹(题中已给出两副牌不会都是炸弹)
//按照比较规则直接输出该副牌
System.out.println(pp[0]);
}else if(p2.length == 4){
System.out.println(pp[1]);
}else{
//其余情况直接输出ERROR
System.out.println("ERROR");
}
}
}