java给定一个只包括 ( , ) , { , } , [ , ] 的字符串 s ,判断字符串是否有效。
时间: 2024-11-27 16:19:47 浏览: 5
java判断一个字符串是否是小数的方法
5星 · 资源好评率100%
在Java中,要判断一个只包含括号如 '(', ')', '{', '}', '[', ']' 的字符串s是否有效,通常采用栈数据结构来解决这个问题。因为括号有匹配规则:每种开括号('('、'{' 和 '[')都需要一个相应的闭合括号(')', '}' 和 ']')。如果字符串是一个有效的括号序列,那么遍历过程中,每当遇到一个左括号,就将其压入栈中;遇到右括号时,检查栈顶元素是否与其匹配,如果不匹配或者栈为空,说明不是有效的括号序列。
你可以创建一个函数,接受一个字符串s作为输入,然后按上述逻辑遍历并检查栈的状态。以下是一个简单的伪代码示例:
```java
boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (c == '(' || c == '{' || c == '[') {
stack.push(c);
} else if (c == ')' && !stack.isEmpty() && stack.peek() == '(') {
stack.pop();
} else if (c == '}' && !stack.isEmpty() && stack.peek() == '{') {
stack.pop();
} else if (c == ']' && !stack.isEmpty() && stack.peek() == '[') {
stack.pop();
} else {
return false; // 如果遇到不匹配的闭合括号,立即返回false
}
}
return stack.isEmpty(); // 遍历完后,如果栈为空,说明所有括号都已正确匹配,返回true;否则返回false
}
```
阅读全文