题解 | 完成括号匹配
完成括号匹配
https://www.nowcoder.com/practice/fe8d6a1b88af4ba6b4dbb10972059040
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNext()) { String input = in.nextLine(); // 处理字符串并输出结果 System.out.println(makeBracketsBalanced(input)); } in.close(); } public static String makeBracketsBalanced(String s) { int openBrackets = 0; int missingOpen = 0; // 遍历字符串,统计左括号和需要补充的左括号数量 for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == '[') { openBrackets++; } else if (c == ']') { if (openBrackets == 0) { missingOpen++; } else { openBrackets--; } } } // 构建最终结果字符串 StringBuilder result = new StringBuilder(); // 补充缺失的左括号 for (int i = 0; i < missingOpen; i++) { result.append('['); } result.append(s); // 补充缺失的右括号 for (int i = 0; i < openBrackets; i++) { result.append(']'); } return result.toString(); } }