问题
我当前的实现当前无法输出我希望获得的所有结果。我当前的代码,预期的和实际的结果可以在下面看到。
任务
在确定括号是正确还是错误的过程中,打印相应括号的索引并保留表格的形式而不检查所有字符。
args [0] =(3x((4 + 2)/ 2)-1)x(5-3)
LinkedStack stack = new LinkedStack();
LinkedStack stack2 = new LinkedStack();
LinkedStack stack3 = new LinkedStack();
for (int i = 0; i < args[0].length(); i++) {
stack.push(args[0].charAt(i));
}
for (int i = 0; i < stack.size(); i++) {
if (stack.peek() == (Object) '(') {
stack2.push(stack.size() - 1);
stack.pop();
} else if (stack.peek() == (Object) ')') {
stack3.push(stack.size() - 1);
stack.pop();
} else {
stack.pop();
}
if (stack2.size() == 1 && stack3.size() != 0) {
System.out.println(stack2.pop() + "," + stack3.pop());
}
}
if ((stack.size() == 0) && (stack2.size() != 0 || stack3.size() != 0)) {
System.out.println("The parentheses are wrong.");
} else {
System.out.println("The parentheses are correct.");
}
预期结果:
16,20
0,14
3,11
4,8
括号是正确的。
实际结果:
16,20
括号是正确的。