LeetCode-探索-初级算法-其他-5. 有效的括号(个人做题记录,不是习题讲解)

LeetCode-探索-初级算法-其他-5. 有效的括号(个人做题记录,不是习题讲解)

LeetCode探索-初级算法:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/

  1. 有效的括号
  • 语言:java

  • 思路:用数组模拟堆栈,然后进行括号匹配

  • 代码(0ms):

    class Solution {
        public boolean isValid(String s) {
            char[] arr = s.toCharArray();
            char[] stack = new char[s.length()];
            int j = 0;
            for(int i = 0; i < arr.length; ++i){
                switch(arr[i]){
                    case '(':
                    case '[':
                    case '{':
                        stack[j++] = arr[i];
                        break;
                    case ')':
                        if(j > 0 && stack[j-1]=='(')
                            --j;
                        else
                            return false;
                        break;
                    case ']':
                        if(j > 0 && stack[j-1]=='[')
                            --j;
                        else
                            return false;
                        break;
                    case '}':
                        if(j > 0 && stack[j-1]=='{')
                            --j;
                        else
                            return false;
                        break;
                }
            }
            return j == 0;
        }
    }
    
  • 参考代码(0ms):基本是一样的,只不过表示方式不太一样

    class Solution {
        public boolean isValid(String s) {
            char[] chars = s.toCharArray();
            char[] stack = new char[chars.length];
            int length = 0;
            for(char c : chars){
                if(c == '(' || c == '[' || c == '{')
                    stack[length++] = c;
                else{
                    if(length != 0 && (stack[length-1]+1 == c || stack[length-1]+2 == c))
                        length--;
                    else
                        return false;
                }
            }
            if(length != 0)
                return false;
            return true;
        }
    }
    

你可能感兴趣的:(LeetCode,原创,非讲解)