题解 | #扑克大小#
扑克牌大小
http://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb
import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Scanner; import java.util.TreeSet; public class Main { public static void main(String[] args) { Scanner input=new Scanner(System.in); String[] strings=input.nextLine().split("-"); String[] strings1=strings[0].split(" "); String[] strings2=strings[1].split(" "); int len1=strings1.length; int len2=strings2.length; HashMap<String, Integer> hashMap=new HashMap<>(); for (int i = 3; i <= 10; i++) { hashMap.put(Integer.toString(i), i); } hashMap.put("J", 11); hashMap.put("Q", 12); hashMap.put("K", 13); hashMap.put("A", 14); hashMap.put("2", 15); hashMap.put("joker", 20); hashMap.put("JOKER", 20); //个子 if (len1==1&&len2==1) { if (hashMap.get(strings1[0])>hashMap.get(strings2[0])) { System.out.println(strings1[0]); } if (hashMap.get(strings1[0])<hashMap.get(strings2[0])) { System.out.println(strings2[0]); } if (hashMap.get(strings1[0])==hashMap.get(strings2[0])) { if ((strings1[0].equals("JOKER")&&strings2[0].equals("joker"))||(strings1[0].equals("joker")&&strings2[0].equals("JOKER"))) { System.out.println("JOKER"); }else { System.out.println("ERROR"); } } } //对子 if (len1==2&&len2==2) { if (hashMap.get(strings1[0])==hashMap.get(strings1[1])&&hashMap.get(strings2[0])==hashMap.get(strings2[1])) { if (hashMap.get(strings1[0])>hashMap.get(strings2[0])) { System.out.println(strings1[0]+" "+strings1[1]); } else { if (hashMap.get(strings1[0])<hashMap.get(strings2[0])) { System.out.println(strings2[0]+" "+strings2[1]); } else { System.out.println("ERROR"); } } } else { System.out.println("ERROR"); } } //三个 if (len1==3&&len2==3) { if ((hashMap.get(strings1[0])==hashMap.get(strings1[1])&&hashMap.get(strings1[0])==hashMap.get(strings1[2])) &&(hashMap.get(strings2[0])==hashMap.get(strings2[1])&&hashMap.get(strings2[0])==hashMap.get(strings2[2]))) { if (hashMap.get(strings1[0])>hashMap.get(strings2[0])) { System.out.println(strings1[0]+" "+strings1[1]+" "+strings1[2]); } else { if (hashMap.get(strings1[0])<hashMap.get(strings2[0])) { System.out.println(strings2[0]+" "+strings2[1]+" "+strings2[2]); } else { System.out.println("ERROR"); } } } else { System.out.println("ERROR"); } } //顺子 if (len1==5&&len2==5) { List<String> list1=new ArrayList<>(); List<String> list2=new ArrayList<>(); for (int i = 0; i < 5; i++) { if ((!list1.contains(strings1[i]))&&(!list2.contains(strings2[i]))) { list1.add(strings1[i]); list2.add(strings2[i]); Collections.sort(list1); Collections.sort(list2); } else { System.out.println("ERROR"); break; } } for (int i = 0; i < 4; i++) { if (hashMap.get(list1.get(i))+1==hashMap.get(list1.get(i+1))&&hashMap.get(list2.get(i))+1==hashMap.get(list2.get(i+1))) { } } if (hashMap.get(list1.get(0))>hashMap.get(list2.get(0))) { for (int i = 0; i < strings1.length; i++) { System.out.print(strings1[i]+" "); } } if (hashMap.get(list1.get(0))<hashMap.get(list2.get(0))) { for (int i = 0; i < strings2.length; i++) { System.out.print(strings2[i]+" "); } } if (hashMap.get(list1.get(0))==hashMap.get(list2.get(0))) { System.out.println("ERROR"); } } //炸弹 if (len1==4&&len2==4) { if ((strings1[0].equals(strings1[1])&&strings1[2].equals(strings1[3])&&strings1[1].equals(strings1[2])) &&(strings2[0].equals(strings2[1])&&strings2[2].equals(strings2[3])&&strings2[1].equals(strings2[2]))) { if (hashMap.get(strings1[0])>hashMap.get(strings2[0])) { for (int i = 0; i < strings1.length; i++) { System.out.print(strings1[i]+" "); } } if (hashMap.get(strings2[0])>hashMap.get(strings1[0])) { for (int i = 0; i < strings2.length; i++) { System.out.print(strings2[i]+" "); } } if (hashMap.get(strings1[0])==hashMap.get(strings2[0])) { System.out.println("ERROR"); } } else { System.out.println("ERROR"); } } //长度不一致 if (len1!=len2) { //有王炸 if (len1==2) { if ((hashMap.get(strings1[0])==hashMap.get(strings1[1]) )&&hashMap.get(strings1[1])==20){ System.out.println("joker JOKER"); }else { //有炸弹 if (len1==4) { if ((strings1[0]==strings1[1])&&(strings1[2]==strings1[3])&&(strings1[1]==strings1[2])) { for (int i = 0; i < strings1.length; i++) { System.out.print(strings1[i]+" "); } } } if (len2==4) { if ((strings2[0]==strings2[1])&&(strings2[2]==strings2[3])&&(strings2[1]==strings2[2])) { for (int i = 0; i < strings2.length; i++) { System.out.print(strings2[i]+" "); } } } else { System.out.println("ERROR"); } if (len1!=4&&len2!=4) { System.out.println("ERROR"); } } } if (len2==2) { if ((hashMap.get(strings2[0])==hashMap.get(strings2[1]) )&&hashMap.get(strings2[1])==20){ System.out.println("joker JOKER"); return; }else { //有炸弹 if (len1==4) { TreeSet<String> set=new TreeSet<>(); for (int i = 0; i < strings1.length; i++) { set.add(strings1[i]); } if (set.size()==1) { System.out.println(strings1[0]+" "+strings1[0]+" "+strings1[0]+" "+strings1[0]+" "); }else { System.out.println("ERROR"); } } if (len2==4) { TreeSet<String> set=new TreeSet<>(); for (int i = 0; i < strings2.length; i++) { set.add(strings2[i]); } if (set.size()==1) { System.out.println(strings2[0]+" "+strings2[0]+" "+strings2[0]+" "+strings2[0]+" "); }else { System.out.println("ERROR"); } } if (len1!=4&&len2!=4) { System.out.println("ERROR"); } } }else{ //有炸弹 if (len1==4&&len2!=2) { TreeSet<String> set=new TreeSet<>(); for (int i = 0; i < strings1.length; i++) { set.add(strings1[i]); } if (set.size()==1) { System.out.println(strings1[0]+" "+strings1[0]+" "+strings1[0]+" "+strings1[0]+" "); }else { System.out.println("ERROR"); } } if (len2==4&&len1!=2) { TreeSet<String> set=new TreeSet<>(); for (int i = 0; i < strings2.length; i++) { set.add(strings2[i]); } if (set.size()==1) { System.out.println(strings2[0]+" "+strings2[0]+" "+strings2[0]+" "+strings2[0]+" "); }else { System.out.println("ERROR"); } } if (len1!=4&&len2!=4) { System.out.println("ERROR"); } } } } }