日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Java】扑克牌の顺子Judge

發(fā)布時間:2025/3/15 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java】扑克牌の顺子Judge 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目要求

(這題自己編著玩的)

現(xiàn)有一副撲克牌,不分花色,分別是 A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, King


要求編寫一個判斷抽到的n張牌是不是順子的程序(王不算順子里的Part)。

分析

由于 A < 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < J < Q < K,我們要用Character肯定不好直接處理,因為A與2、10與J不連續(xù),10也不是char,更何況還有King。

所以我就建立一個映射關系的HashMap,用于查找。
將A定義為1,J定義為11,Q定義為12,K定義為13。

順子必須是5張牌以上,所以先輸入的num不足5就Pass。

接下來把獲取的卡放進Set里,如果Map里沒有,就不能湊成順子。還要判重,如果重復就不是順子。

最后做一下數(shù)據(jù)統(tǒng)計,因為用了TreeSet就完成了排序嘛,所以保證每一個輸出的數(shù)值都是前一個的值+1,就完事。

思路不一定是最簡,只是我的一個想法,有更好的方法還請多多指教,感謝。

實現(xiàn)代碼(Java語言描述)

import java.util.*;public class CardsTest {public static void main(String[] args) {Map<String, Integer> map = new HashMap<>(13);map.put("A", 1);map.put("2", 2);map.put("3", 3);map.put("4", 4);map.put("5", 5);map.put("6", 6);map.put("7", 7);map.put("8", 8);map.put("9", 9);map.put("10", 10);map.put("J", 11);map.put("Q", 12);map.put("K", 13);Set<Integer> set = new TreeSet<>();Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();if (num < 5) {System.out.println("NO");return;}for (int i = 0; i < num; i++) {String input = scanner.next();if (!map.containsKey(input)) {System.out.println("NO");return;}int card = map.get(input);if (set.contains(card)) {System.out.println("NO");return;}set.add(card);}scanner.close();int prev = 0, counter = 0;for (int i : set) {if (counter == 0) {prev = i;counter++;} else {if (prev == i-1) {prev = i;} else {System.out.println("NO");return;}}}System.out.println("YES");} }

總結

以上是生活随笔為你收集整理的【Java】扑克牌の顺子Judge的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。