题解 | #扑克大小#

扑克牌大小

http://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import java.util.TreeSet;

public class Main {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		String[] strings=input.nextLine().split("-");
		
		String[] strings1=strings[0].split(" ");
		String[] strings2=strings[1].split(" ");
		
		int len1=strings1.length;
		int len2=strings2.length;
		
		HashMap<String, Integer> hashMap=new HashMap<>();
		for (int i = 3; i <= 10; i++) {
			hashMap.put(Integer.toString(i), i);			
		}
		hashMap.put("J", 11);
		hashMap.put("Q", 12);
		hashMap.put("K", 13);
		hashMap.put("A", 14);
		hashMap.put("2", 15);
		hashMap.put("joker", 20);
		hashMap.put("JOKER", 20);
		
		//个子
		if (len1==1&&len2==1) {
			if (hashMap.get(strings1[0])>hashMap.get(strings2[0])) {
				System.out.println(strings1[0]);
			}
			if (hashMap.get(strings1[0])<hashMap.get(strings2[0])) {
				System.out.println(strings2[0]);
			}
			if (hashMap.get(strings1[0])==hashMap.get(strings2[0])) {
				if ((strings1[0].equals("JOKER")&&strings2[0].equals("joker"))||(strings1[0].equals("joker")&&strings2[0].equals("JOKER"))) {
					System.out.println("JOKER");
				}else {
					System.out.println("ERROR");
				}	
			}
		}
		
		//对子
		if (len1==2&&len2==2) {
			if (hashMap.get(strings1[0])==hashMap.get(strings1[1])&&hashMap.get(strings2[0])==hashMap.get(strings2[1])) {
				if (hashMap.get(strings1[0])>hashMap.get(strings2[0])) {
					System.out.println(strings1[0]+" "+strings1[1]);
				}
				else {
					if (hashMap.get(strings1[0])<hashMap.get(strings2[0])) {
						System.out.println(strings2[0]+" "+strings2[1]);
					}
					else {
						System.out.println("ERROR");
					}
				}
			}
			else {
				System.out.println("ERROR");
			}
		}
		
		//三个
		if (len1==3&&len2==3) {
			if ((hashMap.get(strings1[0])==hashMap.get(strings1[1])&&hashMap.get(strings1[0])==hashMap.get(strings1[2]))
					&&(hashMap.get(strings2[0])==hashMap.get(strings2[1])&&hashMap.get(strings2[0])==hashMap.get(strings2[2]))) {
				if (hashMap.get(strings1[0])>hashMap.get(strings2[0])) {
					System.out.println(strings1[0]+" "+strings1[1]+" "+strings1[2]);
				}
				else {
					if (hashMap.get(strings1[0])<hashMap.get(strings2[0])) {
						System.out.println(strings2[0]+" "+strings2[1]+" "+strings2[2]);
					}
					else {
						System.out.println("ERROR");
					}
				}
			}
			else {
				System.out.println("ERROR");
			}
		}
		
		//顺子
		if (len1==5&&len2==5) {
			List<String> list1=new ArrayList<>();
			List<String> list2=new ArrayList<>();
			for (int i = 0; i < 5; i++) {
				if ((!list1.contains(strings1[i]))&&(!list2.contains(strings2[i]))) {
					list1.add(strings1[i]);
					list2.add(strings2[i]);
					Collections.sort(list1);
					Collections.sort(list2);
				}				
				else {
					System.out.println("ERROR");
					break;
				}				
			}
			for (int i = 0; i < 4; i++) {
				if (hashMap.get(list1.get(i))+1==hashMap.get(list1.get(i+1))&&hashMap.get(list2.get(i))+1==hashMap.get(list2.get(i+1))) {
					
				}
				
			}
			if (hashMap.get(list1.get(0))>hashMap.get(list2.get(0))) {
				for (int i = 0; i < strings1.length; i++) {
					System.out.print(strings1[i]+" ");					
				}
			}
			if (hashMap.get(list1.get(0))<hashMap.get(list2.get(0))) {
				for (int i = 0; i < strings2.length; i++) {
					System.out.print(strings2[i]+" ");					
				}
			}
			if (hashMap.get(list1.get(0))==hashMap.get(list2.get(0))) {
				System.out.println("ERROR");
			}
		}
		
		//炸弹
		if (len1==4&&len2==4) {
			if ((strings1[0].equals(strings1[1])&&strings1[2].equals(strings1[3])&&strings1[1].equals(strings1[2]))
					&&(strings2[0].equals(strings2[1])&&strings2[2].equals(strings2[3])&&strings2[1].equals(strings2[2]))) {
				if (hashMap.get(strings1[0])>hashMap.get(strings2[0])) {
					for (int i = 0; i < strings1.length; i++) {
						System.out.print(strings1[i]+" ");					
					}
				}
				if (hashMap.get(strings2[0])>hashMap.get(strings1[0])) {
					for (int i = 0; i < strings2.length; i++) {
						System.out.print(strings2[i]+" ");					
					}
				}
				if (hashMap.get(strings1[0])==hashMap.get(strings2[0])) {
					System.out.println("ERROR");
				}
			}
			else {
				System.out.println("ERROR");
			}
		}
		
		//长度不一致
		if (len1!=len2) {
			//有王炸
			if (len1==2) {
				if ((hashMap.get(strings1[0])==hashMap.get(strings1[1]) )&&hashMap.get(strings1[1])==20){
					System.out.println("joker JOKER");
				}else {
					//有炸弹
					if (len1==4) {
						if ((strings1[0]==strings1[1])&&(strings1[2]==strings1[3])&&(strings1[1]==strings1[2])) {	
							for (int i = 0; i < strings1.length; i++) {
								System.out.print(strings1[i]+" ");					
							}
						}
					}
					if (len2==4) {
						if ((strings2[0]==strings2[1])&&(strings2[2]==strings2[3])&&(strings2[1]==strings2[2])) {
							for (int i = 0; i < strings2.length; i++) {
								System.out.print(strings2[i]+" ");					
							}
						}
					}
					else {
						System.out.println("ERROR");
					}
					if (len1!=4&&len2!=4) {
						System.out.println("ERROR");
					}
				}
			}
			if (len2==2) {
				if ((hashMap.get(strings2[0])==hashMap.get(strings2[1]) )&&hashMap.get(strings2[1])==20){
					System.out.println("joker JOKER");
                    return;
				}else {
					//有炸弹
					if (len1==4) {
						TreeSet<String> set=new TreeSet<>();
						for (int i = 0; i < strings1.length; i++) {
							set.add(strings1[i]);						
						}
						if (set.size()==1) {
							System.out.println(strings1[0]+" "+strings1[0]+" "+strings1[0]+" "+strings1[0]+" ");
						}else {
							System.out.println("ERROR");
						}
					}
					if (len2==4) {
						TreeSet<String> set=new TreeSet<>();
						for (int i = 0; i < strings2.length; i++) {
							set.add(strings2[i]);						
						}
						if (set.size()==1) {
							System.out.println(strings2[0]+" "+strings2[0]+" "+strings2[0]+" "+strings2[0]+" ");
						}else {
							System.out.println("ERROR");
						}
					}
					if (len1!=4&&len2!=4) {
						System.out.println("ERROR");
					}
				}
			}else{
                //有炸弹
				if (len1==4&&len2!=2) {
					TreeSet<String> set=new TreeSet<>();
					for (int i = 0; i < strings1.length; i++) {
						set.add(strings1[i]);						
					}
					if (set.size()==1) {
						System.out.println(strings1[0]+" "+strings1[0]+" "+strings1[0]+" "+strings1[0]+" ");
					}else {
						System.out.println("ERROR");
					}
				}
				if (len2==4&&len1!=2) {
					TreeSet<String> set=new TreeSet<>();
					for (int i = 0; i < strings2.length; i++) {
						set.add(strings2[i]);						
					}
					if (set.size()==1) {
						System.out.println(strings2[0]+" "+strings2[0]+" "+strings2[0]+" "+strings2[0]+" ");
					}else {
						System.out.println("ERROR");
					}
				}
				if (len1!=4&&len2!=4) {
					System.out.println("ERROR");
				}
            }
		}
	}

}

全部评论

相关推荐

不懂!!!:感觉你的项目描述太简单了,建议使用star描述法优化提炼一下,就是使用什么技术或方案解决了什么问题,有什么效果或成果,例如:对axios进行了二次封装,实现了请求的统一管理、错误的集中处理以及接口调用的简化,显著提高了开发效率和代码维护性,使用canvas技术实现了路线绘制功能,通过定义路径绘制函数和动态更新机制,满足了简化的导航可视化需求,提升了用户体验。像什么是使用其他组件库,基本功能描述就最好不要写到项目成果里面去了,加油
点赞 评论 收藏
分享
03-13 10:35
安徽大学 Java
牛客246100688号:蚂蚁卡简历的,简历看不上眼全a了也不会有面试的。
投递蚂蚁集团等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务