简要描述:
- 一个函数消除字符串中成对的括号,括号必须成对匹配,否则打印 “ERROR”;
示例:
给定字符串"(1(23456(789)a)bc)",打印结果"123456789abc";给定字符串"1(23456(789)abc))",打印结果"ERROR";
返回示例
public static void main(String[] args) {
String a1 = "(1(23456(789)a)bc)";
String a2 = "1(23456(789)abc))";
removeBrackets(a1);
removeBrackets(a2);
}
Stack<Character> stack = new Stack();
StringBuffer sb = new StringBuffer();
boolean isRight = true;
for (int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if ('(' == c){
stack.push(c);
}else if (')' == c){
if (stack.empty()){
isRight = false;
System.out.println("ERROR");
break;
}
char pop = stack.pop();
if (pop != '('){
isRight = false;
System.out.println("ERROR");
break;
}
}else {
sb.append(c);
}
}
if (isRight){
System.out.println(sb.toString());
}
执行结果
123456789abc
ERROR
本文介绍了一种使用栈数据结构消除字符串中成对括号的算法,并通过示例演示了如何处理匹配错误的情况。该算法确保括号正确配对,否则输出错误信息。

被折叠的 条评论
为什么被折叠?



