用stack判断一个含有大括号中括号小括号和英文字母的文件的括号是不是匹配给我代码
时间: 2024-02-16 09:00:17 浏览: 20
以下是使用Stack判断括号是否匹配的示例代码:
```java
import java.util.Stack;
public class BracketMatcher {
public static boolean isMatched(String input) {
Stack<Character> stack = new Stack<>();
for (char c : input.toCharArray()) {
if (c == '{' || c == '[' || c == '(') {
stack.push(c);
} else if (c == '}' || c == ']' || c == ')') {
if (stack.isEmpty()) {
return false;
}
char top = stack.pop();
if ((top == '{' && c != '}') ||
(top == '[' && c != ']') ||
(top == '(' && c != ')')) {
return false;
}
}
}
return stack.isEmpty();
}
public static void main(String[] args) {
String input = "{[(Hello) World]}";
if (isMatched(input)) {
System.out.printf("%s is matched\n", input);
} else {
System.out.printf("%s is not matched\n", input);
}
}
}
```
在上面的代码中,我们使用了一个Stack来维护括号的匹配情况。我们遍历输入字符串中的每个字符,如果遇到左括号则将其压入栈中,如果遇到右括号则弹出栈顶元素,判断其与右括号是否匹配。如果栈为空或者弹出的栈顶元素与右括号不匹配,则返回false。最后,如果栈为空,则说明所有括号都匹配。