描述 |
扑克牌游戏大家应该都比较熟悉了,一副牌由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]); } }