题解 | #扑克牌大小#
扑克牌大小
https://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Stack;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
static Map<String, Integer> hashmap = new HashMap<>();
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
for(int i=0 ; i<7 ; ++i){
hashmap.put((char)('3'+i)+"", i+3);
}
hashmap.put("10", 10);//注意该情况
hashmap.put("J", 11);
hashmap.put("Q", 12);
hashmap.put("K", 13);
hashmap.put("A", 14);
hashmap.put("2", 15);
hashmap.put("joker", 16);
hashmap.put("JOKER", 17);
while (in.hasNextLine()) {
String[] s = in.nextLine().split("-");
String s1 = s[0], s2 = s[1];
String[] ss1 = s[0].split(" ");
String[] ss2 = s[1].split(" ");
//System.out.println(Arrays.toString(ss1));
int ans = puke(ss1, ss2);
if(ans == 0){
System.out.println(s1);
}
else if(ans == 1){
System.out.println(s2);
}
else{
System.out.println("ERROR");
}
}
}
public static int puke(String[] ss1, String[] ss2) {
if(ss1.length==2 && ss1[0].equals("joker") && ss1[1].equals("JOKER")){
return 0;
}
if(ss2.length==2 && ss2[0].equals("joker") && ss2[1].equals("JOKER")){
return 1;
}
if(isBoom(ss1) || isBoom((ss2))){
if(!isBoom(ss2)){
return 0;
}
else if(!isBoom(ss1)){
return 1;
}
else{
if(hashmap.get(ss1[0]) > hashmap.get(ss2[0])){
return 0;
}
else{
return 1;
}
}
}
//上面考虑了炸弹和大小王的特殊情况
if(ss1.length != ss2.length){
return 2;
}
else{
if(hashmap.get(ss1[0]) > hashmap.get(ss2[0])){
return 0;
}
else{
return 1;
}
}
}
public static boolean isBoom(String[] ss) {
if (ss.length != 4) {
return false;
}
for (int i = 1 ; i < ss.length ; ++i) {
if (!ss[i].equals(ss[i-1])) {
return false;
}
}
return true;
}
}
查看8道真题和解析