斗地主起源于湖北十堰房县,
据传是一位叫吴修全的年轻人根据当地流行的扑克玩法“跑得快”改编的,
如今已风靡整个中国,并流行于互联网上
牌型:
单顺,又称顺子,最少5张牌,最多12
张牌(3...A
),不能有2
,
也不能有大小王,不计花色
例如:3-4-5-7-8
,7-8-9-10-J-Q
,3-4-5-6-7-8-9-10-J-Q-K-A
可用的牌3<4<5<6<7<8<9<10<J<Q<K<A<2<B(小王)<C(大王)
,
每种牌除大小王外有4
种花色(共有13X4+2
张牌)
输入
NO-CHAIN
输入的第一行为当前手中的牌
输入的第一行为已经出过的牌
最长的顺子
3-3-3-3-4-4-5-5-6-7-8-9-10-J-Q-K-A
4-5-6-7-8-8-8
9-10-J-Q-K-A
3-3-3-3-8-8-8-8
K-K-K-K
NO-CHAIN
import java.util.HashMap;
import java.util.Scanner;
/**
* Created with IntelliJ IDEA.
* Author: Amos
* E-mail: amos@amoscloud.com
* Date: 2022/6/6
* Time: 16:06
* Description:
*/
public class Main0101 {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
String my = scanner.nextLine();
String over = scanner.nextLine();
solution(my, over);
}
}
static String[] graph = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
private static void solution(String my, String over) {
HashMap<String, Integer> cards = new HashMap<>();
for (String s : graph) {
cards.put(s, 4);
}
diff(cards, my);
diff(cards, over);
String res = find(cards);
System.out.println(res);
}
private static void diff(HashMap<String, Integer> cards, String str) {
for (String card : str.split("-")) {
if (cards.containsKey(card)) {
cards.put(card, cards.get(card) - 1);
}
}
}
private static String find(HashMap<String, Integer> cards) {
String res = "NO-CHAIN";
int l = 0, r = 0;
for (int i = 0; i < graph.length; i++) {
String card = graph[i];
if (cards.get(card) > 0) {
l = i;
while (i < graph.length - 1 && cards.get(graph[i + 1]) > 0) {
i++;
}
r = i + 1;
}
}
if (r - l >= 5) {
StringBuilder builder = new StringBuilder();
for (int i = l; i < r; i++) {
builder.append(graph[i]).append("-");
}
if (builder.length() > 0) {
res = builder.substring(0, builder.length() - 1);
}
}
return res;
}
}