欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

每日一练(2021/9/10)

程序员文章站 2022-03-05 10:56:53
...

1、有效的括号
给定一个只包含’(’,’)’,’{’,’},’[’,’]’,的字段串s,判断字符串是否有效
有效字符串需满足:

  • 左括号必须用相同类型的有括号闭合
  • 左括号必须以正确的顺序闭合
  • 1 <= s.length <= 10^4
  • s仅由’(){}[]'组成
   public boolean isVaild(String s) {
       char[] parentheses = {
               '(', '[', '{', ')', ']', '}'
       };
       int i = 0;
       char c;
       int[] sum = {0, 0, 0};
       Stack<Integer> top = new Stack<>();
       while (i < s.length()) {
           c = s.charAt(i);
           for (int j = 0; j <= 2; j++) {
               if (c == parentheses[j]) {
                   top.push(j);//入栈
                   sum[j]++;
               } else if (c == parentheses[j + 3]) {
                   ##返回栈顶元素
                   if (top.size() == 0 || top.peek() != j) {
                       return false;
                   }
                   top.pop();//出栈
                   sum[j]--;
               } else {

               }
           }
           i++;
       }
       for (int j = 0; j <= 2; j++) {
           if (sum[j] != 0) {
               return false;
           }
       }
       return true;

   }
}

相关标签: 每日一练 java