package com.cc.collection;
import java.util.Stack;
public class Homework06 {
public static void main(String[] args) {
Stack<Character> stack = new Stack<Character>();
String s = "...(...[....]....{....}..)...(...)..";
//先把字符串变成字符数组
char[] chs = s.toCharArray();
//遍历字符数组
for(char c:chs) {
//当字符是任意一个左括号时进栈
if(c=='('||c=='['||c=='{') {
stack.push(c);
}
//当字符是任意一个右括号的时候,
if(c==')'||c==']'||c=='}') {
//先判断栈是否为空,stack是Vector的子类,使用isEmpty方法也可以
if(stack.empty()) {
System.out.println("括号不匹配");
//因为如果不让c进栈的话,输出括号不匹配之后,break结束循环,后面的括号都不会进栈了,导致栈空,
//但是在结束循环时判断栈空就是匹配,会出现两个结果为了避免出现两个结果所以让其进栈
stack.push(c);
break;
}else {//栈不空
char cc = stack.peek();//查看栈顶元素只是查看,并不会移除
//任意一对左右括号匹配
if((cc=='('&&c=='
判断括号是否匹配------Stack
最新推荐文章于 2022-02-28 17:36:08 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)