给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配,java实现
时间: 2024-03-09 15:51:50 浏览: 152
可以使用栈来实现括号匹配的检查。具体实现步骤如下:
1. 定义一个栈,用于存储左括号字符。
2. 遍历给定的字符串,对于每个字符,如果是左括号字符,将其压入栈中;如果是右括号字符,弹出栈顶元素并判断其是否与当前字符匹配。
3. 如果栈为空,说明字符中的括号全部匹配;否则,存在未匹配的括号。
以下是Java代码实现:
```java
import java.util.Stack;
public class BracketMatching {
public static boolean isMatched(String str) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch == '(' || ch == '[' || ch == '{') {
stack.push(ch);
} else if (ch == ')' || ch == ']' || ch == '}') {
if (stack.isEmpty()) {
return false;
}
char top = stack.pop();
if ((ch == ')' && top != '(')
|| (ch == ']' && top != '[')
|| (ch == '}' && top != '{')) {
return false;
}
}
}
return stack.isEmpty();
}
public static void main(String[] args) {
String str1 = "({[]})";
String str2 = "([)]";
System.out.println(isMatched(str1)); // true
System.out.println(isMatched(str2)); // false
}
}
```
阅读全文