import java.util.*; public class Main { // 读入手牌 int[] hand = new int[handStr.length]; for (int i = 0; i < handStr.length; i++) { } // 读入当前出牌 int[] current = new int[currentStr.length]; for (int i = 0; i < currentStr.length; i++) { } // 统计手牌频率 int[] count = new int[16]; // 3~15,索引 3~15 for (int card : hand) { if (card >= 3 && card <= 15) { count[card]++; } } int L = current.length; // 1. 找顺子 List<Integer> minStraight = null; int currentMinCard = current[0]; // 找所有可能的顺子 for (int start = 3; start <= 15 - L + 1; start++) { boolean valid = true; for (int k = 0; k < L; k++) { if (count[start + k] < 1) { valid = false; break; } } if (valid && start > currentMinCard) { // 这个顺子可以出 List<Integer> straight = new ArrayList<>(); for (int k = 0; k < L; k++) { straight.add(start + k); } if (minStraight == null || start < minStraight.get(0)) { minStraight = straight; } } } // 2. 找炸弹 int minBomb = -1; for (int card = 3; card <= 15; card++) { if (count[card] >= 4) { if (minBomb == -1 || card < minBomb) { minBomb = card; } } } // 3. 决定出什么 List<Integer> result = new ArrayList<>(); if (minStraight != null) { result = minStraight; } else if (minBomb != -1) { for (int i = 0; i < 4; i++) { result.add(minBomb); } } // 否则 result 为空 // 输出 } }
14,2,4,5,7,2,5,9,7,10,11,12,12,13,14,2,10,8,7 6,7,8,9,10