题目描述
给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列
括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。
示例1
输入
"["
返回值
false
示例2
输入
"[]"
返回值
true
代码实现:
import java.util.*;
public class Solution {
/**
*
* @param s string字符串
* @return bool布尔型
*/
public boolean isValid (String s) {
char[] arr = s.toCharArray();
Stack<Character> stack = new Stack<>();
for (char a : arr) {
if (a == '(' || a == '{' || a == '[') {
stack.push(a);
} else {
if (stack.empty()) {
return false;
}
if ((stack.peek() == '(' && a == ')') ||
(stack.peek() == '{' && a == '}') ||
(stack.peek() == '[' && a == ']')) {
stack.pop();
}
}
}
if (stack.empty()) {
return true;
} else {
return false;
}
}
}