题解 | #扑克牌大小#
扑克牌大小
https://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb
import java.math.*; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.*; import java.util.stream.*; import java.util.regex.*; import java.util.function.*; public class Main { static String Pokers = "345678910JQKA2jokerJOKER"; static Map<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("Q", 10); map.put("K", 11); map.put("A", 12); map.put("2", 13); } public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println(pk(in.nextLine().split("-"))); } static String pk(String[] decks) { int t1 = getType(decks[0].split(" ")); int t2 = getType(decks[1].split(" ")); String s1 = decks[0]; String s2 = decks[1]; String s1c1 = s1.split(" ")[0]; String s2c1 = s2.split(" ")[0]; if (t1 == t2 && t1 != -1) { if (t1 == 0 && decks[0].contains("joker")) { return decks[0]; } else if (t1 == 0 && decks[1].contains("joker")) { return decks[1]; } else if (t1 <= 4 && Pokers.indexOf(s1c1) > Pokers.indexOf(s2c1) ) { return decks[0]; } else if (t1 <= 4 && Pokers.indexOf(s1c1) < Pokers.indexOf(s2c1) ) { return decks[1]; } } else { if (t1 == 0) { return decks[0]; } else if (t2 == 0) { return decks[1]; } } return "ERROR"; } static int getType(String[] cards) { if (cards.length == 2 && "joker".equals(cards[0]) && "JOKER".equals(cards[1])) { return 0; } if (cards.length == 4 && cards[0].equals(cards[1]) && cards[1].equals(cards[2]) && cards[2].equals(cards[3])) { return 0; } if (cards.length == 5 && map.get(cards[4]) == map.get(cards[3]) + 1 && map.get(cards[3]) == map.get(cards[2]) + 1 && map.get(cards[2]) == map.get(cards[1]) + 1 && map.get(cards[1]) == map.get(cards[0]) + 1) { return 1; } if (cards.length == 3 && cards[2].equals(cards[1]) && cards[1].equals(cards[0])) { return 2; } if (cards.length == 2 && cards[1].equals(cards[0])) { return 3; } if (cards.length == 1) { return 4; } return -1; } }