在Java给定一个只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串,判断字符串是否有效。怎么写
时间: 2023-08-21 12:17:13 浏览: 137
java 判断字符串是否包含子串的方法
您可以使用栈来解决这个问题。遍历字符串的每个字符,如果是左括号,则将其推入栈中;如果是右括号,则检查栈顶元素是否与之匹配,如果匹配则将栈顶元素弹出,否则返回 false。最后,检查栈是否为空,如果为空则返回 true,否则返回 false。
以下是一个简单的Java代码示例:
```java
import java.util.Stack;
public class ValidParentheses {
public 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;
}
}
return stack.isEmpty();
}
}
```
您可以使用 `isValid` 方法来判断给定的字符串是否有效。例如:
```java
ValidParentheses solution = new ValidParentheses();
System.out.println(solution.isValid("(){}[]")); // 输出: true
System.out.println(solution.isValid("({[]})")); // 输出: true
System.out.println(solution.isValid("({[}])")); // 输出: false
```
希望对您有帮助!如果有任何疑问,请随时提问。
阅读全文