法1:栈
栈的基础知识介绍:http://www.nhooo.com/java/java-stack.html
必须掌握之算法
Python
class Solution:
def isValid(self, s: str) -> bool:
stack = []
for c in s:
if not stack:
stack.append(c)
elif c == ')' and stack[-1] == '(':
stack.pop()
elif c == '}' and stack[-1] == '{':
stack.pop()
elif c == ']' and stack[-1] == '[':
stack.pop()
else:
stack.append(c)
return not stack
Java
class Solution {
public boolean isValid(String s) {
char[] array = s.toCharArray();
Stack<Character> stack = new Stack<>();
for (int i = 0; i < array.length; ++i) {
if (array[i] == '(' || array[i] == '[' || array[i] == '{') {
stack.push(array[i]);
} else if (!stack.isEmpty()
&& (array[i] == ')' && stack.peek() == '('
|| array[i] == ']' && stack.peek() == '['
|| array[i] == '}' && stack.peek() == '{')) {
stack.pop();
} else {
return false;
}
}
return stack.isEmpty();
}
}
文章介绍了如何使用Java中的栈数据结构来实现一个方法,用于检查字符串中括号的配对是否有效。Solution类中的isValid方法利用栈来存储遇到的左括号,遇到右括号时检查栈顶的左括号是否匹配。
1480

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



