题解 | #扑克牌大小#
扑克牌大小
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;
}
}
查看24道真题和解析