java写出括号序列用stack的代码
时间: 2023-12-11 14:02:03 浏览: 25
下面是使用Java的Stack实现括号序列匹配的示例代码:
```java
import java.util.Stack;
public class BracketSequence {
public static boolean match(String s) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '(' || c == '[' || c == '{') {
stack.push(c);
} else if (c == ')' || c == ']' || c == '}') {
if (stack.isEmpty()) {
return false;
}
char top = stack.pop();
if ((c == ')' && top != '(') || (c == ']' && top != '[') || (c == '}' && top != '{')) {
return false;
}
}
}
return stack.isEmpty();
}
public static void main(String[] args) {
String s1 = "([])(){}";
String s2 = "([)]";
String s3 = "{[]()}()";
System.out.println(s1 + " is " + (match(s1) ? "valid" : "invalid"));
System.out.println(s2 + " is " + (match(s2) ? "valid" : "invalid"));
System.out.println(s3 + " is " + (match(s3) ? "valid" : "invalid"));
}
}
```
运行结果:
```
([])(){} is valid
([)] is invalid
{[]()}() is valid
```