public static void main(String[] args) {
String str = "(){}[(]";
String leftParen = "(";
String leftBrach = "{";
String leftBrachet = "[";
String rightParen = ")";
String rightBrach = "}";
String rightBrachet = "]";
Stack<String> stack = new Stack<>();
for (char c : str.toCharArray()) {
String value = String.valueOf(c);
if (value.equals(leftParen) || value.equals(leftBrach) || value.equals(leftBrachet)) {
stack.push(value);
} else {
if (stack.isEmpty()) {
System.out.println("false");
return;
}
String top = stack.pop();
if ((top.equals(leftParen) && value.equals(rightParen))
|| (top.equals(leftBrach) && value.equals(rightBrach))
|| (top.equals(leftBrachet) && value.equals(rightBrachet))) {
continue;
} else {
System.out.println("false");
return;
}
}
}
System.out.println("true");
}
算法练习题-栈
于 2019-01-21 17:12:13 首次发布