括号匹配--java栈实现

假设括号都是(),{},[],{[]()},{()()}这种可以匹配的,存在{(}),([)均为错。

 

 1 public boolean match(String str) {
 2         //String str="[()()]{}";
 3         Stack <Character> s = new Stack<Character>();
 4         for (int index=0; index<str.length();index++) {
 5             switch(str.charAt(index)) {
 6             case '(':
 7                 s.push(str.charAt(index));
 8                 break;
 9             case '[':
10                 s.push(str.charAt(index));
11                 break;
12             case '{':
13                 s.push(str.charAt(index));
14                 break;
15             case ')':
16                 if(s.peek().equals(')')&& (!s.empty()) ) {
17                     s.pop();
18                 }
19                 break;
20             case ']':
21                 if(s.peek().equals(']')&& (!s.empty()) ) {
22                     s.pop();
23                 }
24                 break;
25             case '}':
26                 if(s.peek().equals('}')&& (!s.empty()) ) {
27                     s.pop();
28                 }
29                 break;
30             }
31         }
32         if(s.empty()) {
33             return true;
34         }
35         return false;
36     }

 

 

 

转载于:https://www.cnblogs.com/Suntree/p/11552361.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值