算法 BISHI19 乒乓球 求解代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer in = new StringTokenizer(br.readLine()); PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); String str = in.nextToken(); char[] s = str.toCharArray(); printScore(11, s, out); out.println(); printScore(21, s, out); out.flush(); out.close(); br.close(); } private static void printScore(int score, char[] s, PrintWriter out) { int w = 0; int l = 0; // 遍历每一个得分字符(W/L) for (int i = 0; i < s.length; i++) { // 统计得分:W则w+1,否则(L)l+1 if (s[i] == 'W') { w++; } else { l++; } // 判断是否赢下本局: // 条件1:分差≥2 // 条件2:任意一方达到目标分数(w≥score 或 l≥score) if (Math.abs(w - l) >= 2 && (w >= score || l >= score)) { out.println(w + ":" + l); // 输出本局最终比分 w = 0; // 重置得分,开始下一局 l = 0; } } // 遍历完所有字符后,输出最后未完成局的剩余比分 out.println(w + ":" + l); }