题目描述

扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):
3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER
输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如:4 4 4 4-joker JOKER。
请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。
基本规则:
(1)输入每手牌可能是个子、对子、顺子(连续5张)、三个、炸弹(四个)和对王中的一种,不存在其他情况,由输入保证两手牌都是合法的,顺子已经从小到大排列;
(2)除了炸弹和对王可以和所有牌比较之外,其他类型的牌只能跟相同类型的存在比较关系(如,对子跟对子比较,三个跟三个比较),不考虑拆牌情况(如:将对子拆分成个子);
(3)大小规则跟大家平时了解的常见规则相同,个子、对子、三个比较牌面大小;顺子比较最小牌大小;炸弹大于前面所有的牌,炸弹之间比较牌面大小;对王是最大的牌;

(4)输入的两手牌不会出现相等的情况。

输入描述:

输入两手牌,两手牌之间用"-"连接,每手牌的每张牌以空格分隔,"-"两边没有空格,如 4 4 4 4-joker JOKER。

输出描述:

输出两手牌中较大的那手,不含连接符,扑克牌顺序不变,仍以空格隔开;如果不存在比较关系则输出ERROR。

示例1

输入

4 4 4 4-joker JOKER

输出

joker JOKER

代码如下:

 package com.yzh.xuexi;

 import java.util.Scanner;

 public class PockerCompare {

     public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext()){
String s=scanner.nextLine();
String[]arr =s.split("-");
System.out.println(pockerCompare(arr[0], arr[1]));
}
scanner.close();
} private static String pockerCompare(String pocker1,String pocker2) {
pocker1=pocker1.replace("10", "1");//10和joker、JOKER 不止一个字符,替换成一个字符表示,方便利用字符串的长度
pocker2=pocker2.replace("10", "1"); int length1=pocker1.length();
int length2=pocker2.length();
String result=null;
if (length1==11) {
result=pocker1;
return getResult(result);
}
if (length2==11) {
result= pocker2;
return getResult(result);
} if(length1==7&&length2==7){
result= compare(pocker1, pocker2)>0?pocker1:pocker2;
return getResult(result);
}
if (length1==7&&length2!=7) {
result= pocker1;
return getResult(result);
}
if (length2==7&&length1!=7) {
result= pocker2;
return getResult(result);
} if (pocker1.equals("joker")) {
pocker1="s";//10和joker、JOKER 不止一个字符,替换成一个字符表示,方便利用字符串的长度
}else if (pocker1.equals("JOKER")) {
pocker2="b";//10和joker、JOKER 不止一个字符,替换成一个字符表示,方便利用字符串的长度
}
if (pocker2.equals("joker")) {
pocker2="s";
}else if (pocker2.equals("JOKER")) {
pocker2="b";
} length1=pocker1.length();
length2=pocker2.length(); if (length1!=length2) {
result= "ERROR";
return getResult(result);
} result= compare(pocker1, pocker2)>0?pocker1:pocker2;
return getResult(result);
} private static String getResult(String result) {
return result.replace("1", "10").replace("s","joker").replace("b", "JOKER"); }
private static int compare(String pocker1,String pocker2) {
char c1=pocker1.charAt(0);
char c2=pocker2.charAt(0);
String sort="34567891JQKA2sb";
return sort.indexOf(c1) - sort.indexOf(c2);
} }

最新文章

  1. Java链接MySQL练习题:格式化日期、性别;避免代码注入
  2. 用fontAwesome代替网页icon小图标
  3. SQL Server集群服务器的优缺点
  4. 洛谷P2728 纺车的轮子 Spinning Wheels
  5. DF学Mysql(二)——数据表的基本操作
  6. 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取”产品付费数量等于0的问题”】
  7. STL笔记之【map之总概】
  8. SpringMvc多视图配置(jsp、velocity、freemarker) 在src目录views.properties配置
  9. 重构tableview!
  10. eclipse: eclipse导入工程出现大红叹号
  11. cinder-volume报错vmdk2 is reporting problems, not sending heartbeat. Service will appear "down".
  12. 多功能版vue日历控件
  13. Pyhon 逻辑运算符
  14. WebApi HTTP Put 405 Method not allowed
  15. 微信小程序项目实战 - 菜谱大全
  16. 第二个Sprint冲刺第二天(燃尽图)
  17. SP8093 JZPGYZ - Sevenk Love Oimaster 解题报告
  18. OC 点语法和变量作用域
  19. 解决eclipse 文件更新不自动刷新的问题
  20. Hybris阶段总结(2)hybris架构

热门文章

  1. python入门-使用API
  2. python学习笔记_week16
  3. Maven的下载和配置
  4. C# NPOI生成Excel文档(简单样式)
  5. leetcode1009
  6. 网关协议学习:CGI、FastCGI、WSGI
  7. day17-函数装饰器
  8. 分布式ID生成学习
  9. 用python实现一个简单的服务器
  10. 模糊查询内存查询java实现