码迷,mamicode.com
首页 > 其他好文 > 详细

判断字符串是不是合法

时间:2020-04-09 00:31:52      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:bsp   代码块   ||   使用   src   main   技术   nbsp   else   

示例:

1 输入: "(]"
2 输出: false
3 
4 输入: "{[]}"
5 输出: true

 

 

思想:

  这里我们使用栈。

  遍历输入字符串
  如果当前字符为左半边括号时,则将其压入栈中
  如果遇到右半边括号时,分类讨论:
    1)如栈不为空且为对应的左半边括号,则取出栈顶元素,继续循环
    2)若此时栈为空,则直接返回false
    3)若不为对应的左半边括号,反之返回false

 

 

 

 

代码块:

 1 public static boolean isValid(String s) {
 2         Stack<Character> stack = new Stack();
 3         char[] chars = s.toCharArray();
 4         for (char a: chars) {
 5             if (a == ( || a == { || a == [) {
 6                 stack.add(a);
 7             } else {
 8                 if(stack.isEmpty())
 9                     return false;
10                 if (a == ) && stack.pop() != ()
11                     return false;
12                 if (a == } && stack.pop() != {)
13                     return false;
14                 if (a == ] && stack.pop() != [)
15                     return false;
16             }
17         }
18         return stack.isEmpty();
19     }
20 
21     public static void main(String[] args) {
22         System.out.println(isValid("[{}]"));
23         System.out.println(isValid("((([{}])))"));
24         System.out.println(isValid("]{}()["));
25         System.out.println(isValid("((([]))}"));
26         System.out.println(isValid("{{[]()[]}"));
27     }

结果:

技术图片

 

判断字符串是不是合法

标签:bsp   代码块   ||   使用   src   main   技术   nbsp   else   

原文地址:https://www.cnblogs.com/dabu/p/12663836.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!