一、判断字符串括号是否有效 给定一个只包含 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 示例 1: 输入:"()" 输出:true java题解
时间: 2024-10-16 21:07:23 浏览: 43
判断字符串括号的有效性通常涉及到栈的数据结构。你可以使用一种称为“匹配算法”的策略。以下是基本步骤:
1. 创建一个空栈,用于存储遇到的左括号。
2. 遍历输入字符串中的每个字符:
- 如果遇到的是左括号(如 '(', '{', '['),将其压入栈中。
- 如果遇到的是右括号,检查栈顶元素是否与其相匹配。如果是,则弹出栈顶元素;如果不是,则返回 false,表示括号配对错误。
3. 遍历结束后,如果栈为空,说明所有的左括号都有对应的右括号,并且按照正确的顺序闭合,所以返回 true。如果栈非空,意味着还有未匹配的左括号,也返回 false。
下面是一个简单的Java代码示例:
```java
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (c == '(' || c == '{' || c == '[') {
stack.push(c);
} else if (stack.isEmpty() || c != ')' && c != '}' && c != ']') {
return false;
} else {
if (c == ')' && stack.pop() != '(' ||
c == '}' && stack.pop() != '{' ||
c == ']' && stack.pop() != '[') {
return false;
}
}
}
return stack.isEmpty();
}
```
阅读全文