
替换字符串法
class Solution { // 将成对的括号替换成空 // 如果整个字符串都能被替换成空说明给定的字符串有效 // 如果出现无法替换的情况说明字符串无效 public boolean isValid(String s) { while (s.length() > 0) { if (s.contains("()")) { s = s.replace("()", ""); } else if (s.contains("[]")) { s = s.replace("[]", ""); } else if (s.contains("{}")) { s = s.replace("{}", ""); } else { return false; } } return true; }}
使用辅助栈
class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (!stack.isEmpty()) {
if (c == ')' && stack.peek() == '(') {
stack.pop();
continue;
} else if (c == ']' && stack.peek() == '[') {
stack.pop();
continue;
} else if (c == '}' && stack.peek() == '{') {
stack.pop();
continue;
}
}
stack.push(c);
}
return stack.isEmpty();
}
}
使用辅助栈,if 块的另一种写法
class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for(char c : s.toCharArray()) {
if (!stack.isEmpty()) {
if ((c == ')' && stack.peek() == '(')
|| (c == ']' && stack.peek() == '[')
|| (c == '}' && stack.peek() == '{')) {
stack.pop();
continue;
}
}
stack.push(c);
}
return stack.isEmpty();
}
}