题解 | #扑克牌大小#
扑克牌大小
https://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.math.BigDecimal; import java.math.BigInteger; import java.text.DateFormat; import java.text.DecimalFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.function.Function; import java.util.function.IntFunction; import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; import static java.util.Arrays.*; import static java.util.stream.Stream.*; public class Main { public static void main(String[] args) throws IOException { testTh(); } private static void testTh() throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); String str; while ((str = bf.readLine()) != null) { String[] split = str.split("-"); String[] ke = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2", "joker", "JOKER"}; Integer[] va = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14}; HashMap<String, Integer> hashMap = new HashMap<>(); for (int i = 0; i < ke.length; i++) { hashMap.put(ke[i], va[i]); } ArrayList<Integer> arrayList_1 = new ArrayList<>(); ArrayList<Integer> arrayList_2 = new ArrayList<>(); ArrayList<Integer> integerArrayList_1 = getIntegerArrayList(arrayList_1, split[0], hashMap); ArrayList<Integer> integerArrayList_2 = getIntegerArrayList(arrayList_2, split[1], hashMap); if (isJOKER2(integerArrayList_1)) { System.out.println(split[0]); return; } if (isJOKER2(integerArrayList_2)) { System.out.println(split[1]); return; } boolean flag_0 = false; boolean flag_1 = false; if (integerArrayList_1.size() == 4) flag_0 = true; if (integerArrayList_2.size() == 4) flag_1 = true; if (flag_0 && flag_1) { if (integerArrayList_1.get(0) > integerArrayList_2.get(0)) { System.out.println(split[0]); } else { System.out.println(split[1]); } return; } else if (flag_0 || flag_1) { if (flag_0) { System.out.println(split[0]); } else { System.out.println(split[1]); } return; } else { if (integerArrayList_1.size() != integerArrayList_2.size()) { System.out.println("ERROR"); } else { if (integerArrayList_1.get(0) > integerArrayList_2.get(0)) { System.out.println(split[0]); } else { if (split[0].startsWith("J")) { System.out.println(split[0]); return; } else if (split[1].startsWith("J")) { System.out.println(split[1]); return; } System.out.println(split[1]); } return; } } } } public static ArrayList<Integer> getIntegerArrayList (ArrayList<Integer> arrayList, String s, HashMap<String, Integer> hashMap) { String[] strings = s.split(" "); for (int i = 0; i < strings.length; i++) { Integer integer = hashMap.get(strings[i]); arrayList.add(integer); } return arrayList; } public static Boolean isJOKER2(ArrayList<Integer> arrayList) { return arrayList.size() == 2 && arrayList.get(0) == 14 && arrayList.get(1) == 14; } }