题解 | #扑克牌大小#
扑克牌大小
https://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb
import java.util.Scanner; import java.util.HashMap; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { private static HashMap<String,Integer> map =new HashMap(); static{ map.put("3",1); map.put("4",2); map.put("5",3); map.put("6",4); map.put("7",5); map.put("8",6); map.put("9",7); map.put("10",8); map.put("J",9); map.put("O",10); map.put("K",11); map.put("A",12); map.put("2",13); map.put("joker",14); map.put("JOKER",15); } public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextLine()) { // 注意 while 处理多个 case String [] pokes =in.nextLine().split("-"); String [] one =pokes[0].split(" "); String [] two =pokes[1].split(" "); if(aLeastb(one,two)==1) { System.out.println(pokes[1]); } else if(aLeastb(one,two)==0) { System.out.println(pokes[0]); } else{ System.out.println("ERROR"); } } } public static int aLeastb(String [] a,String []b) { if(a.length>=2||b.length>=2) { if (a[0].equals("joker")&&a[1].equals("JOKER") || a[0].equals("JOKER")&&a[1].equals("joker")){ return 0; }else if (b[0].equals("joker")&&b[1].equals("JOKER") || b[0].equals("JOKER")&&b[1].equals("joker")){ return 1; } } int n1 =map.get(a[0]); int n2 =map.get(b[0]); if(isBoom(a)&&isBoom(b)) { return n1<n2?1:0; } else if(isBoom(a)) { return 0; } else if(isBoom(b)) { return 1; } else if(a.length==b.length) { return n1<n2?1:0; } else{ return -1; } } public static boolean isBoom(String [] a) { if(a.length!=4)return false; String first =a[0]; for(int i=1;i<4;i++) { if(!a[i].equals(first))return false; } return true; } }