扑克牌大小
| 描述 |
扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王): (4)输入的两手牌不会出现相等的情况。
|
|---|---|
| 知识点 | 字符串,循环,链表,队列,栈,查找,搜索,排序,树,图,数组,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归 |
| 运行时间限制 | 0M |
| 内存限制 | 0 |
| 输入 |
输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如 4 4 4 4-joker JOKER。 |
| 输出 |
输出两手牌中较大的那手,不含连接符,扑克牌顺序不变,仍以空格隔开;如果不存在比较关系则输出ERROR。 |
| 样例输入 | 4 4 4 4-joker JOKER |
| 样例输出 | joker JOKER |
提示:大家不要想得太麻烦了,按给出的提示做就好,我知道肯定很多人还要把顺子排序什么的,不要问我为什么知道,因为我没有这么做
package com.oj;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Test {
static Map<String,Integer> mapping = new HashMap<String,Integer>();
static {
mapping.put("3", 1);
mapping.put("4", 2);
mapping.put("5", 3);
mapping.put("6", 4);
mapping.put("7", 5);
mapping.put("8", 6);
mapping.put("9", 7);
mapping.put("10", 8);
mapping.put("J", 9);
mapping.put("Q", 10);
mapping.put("K", 11);
mapping.put("A", 12);
mapping.put("2", 13);
mapping.put("joker", 14);
mapping.put("JOKER", 15);
}
private static int BiJiao(String[] partone, String[] parttwo) {
if(partone.length!=parttwo.length){
if(partone.length<parttwo.length){
if(parttwo.length==4){ //两手牌不等,parttwo为炸
if(partone.length==2&&(mapping.get(partone[0])==14||mapping.get(partone[0])==15))
return 1;
else
return -1;
}else if(parttwo.length==2){ //两手牌不等,则等于2的必为王炸
return 1;
}
}
if(partone.length>parttwo.length){
if(partone.length==4){
if(parttwo.length==2&&(mapping.get(parttwo[0])==14||mapping.get(parttwo[0])==15))
return -1;
else
return 1;
}else if(partone.length==2){
return -1;
}
}
}else if(partone.length==1&&parttwo.length==1){
int valueone = mapping.get(partone[0]);
int valuetwo = mapping.get(parttwo[0]);
if(valueone>valuetwo)
return 1;
else if(valueone<valuetwo)
return -1;
}else if(partone.length==2&&parttwo.length==2){
int valueone = mapping.get(partone[0]);
int valuetwo = mapping.get(parttwo[0]);
if(valueone>valuetwo)
return 1;
else if(valueone<valuetwo)
return -1;
}else if(partone.length==3&&parttwo.length==3){
int valueone = mapping.get(partone[0]);
int valuetwo = mapping.get(parttwo[0]);
if(valueone>valuetwo)
return 1;
else if(valueone<valuetwo)
return -1;
}else if(partone.length==4&&parttwo.length==4){
int valueone = mapping.get(partone[0]);
int valuetwo = mapping.get(parttwo[0]);
if(valueone>valuetwo)
return 1;
else if(valueone<valuetwo)
return -1;
}else if(partone.length==5&&parttwo.length==5){
int valueone = mapping.get(partone[0]);
int valuetwo = mapping.get(parttwo[0]);
if(valueone>valuetwo)
return 1;
else if(valueone<valuetwo)
return -1;
}
return 1;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String input = in.nextLine();
String[] data = input.split("-");
String one = data[0];
String two = data[1];
String[] partone = one.split(" ");
String[] parttwo = two.split(" ");
if(BiJiao(partone,parttwo)==1)
System.out.println(data[0]);
else if(BiJiao(partone,parttwo)==-1)
System.out.println(data[1]);
}
}
态度决定高度,细节决定成败,

浙公网安备 33010602011771号