LeetCode-探索-初级算法-其他-5. 有效的括号(个人做题记录,不是习题讲解)
LeetCode探索-初级算法:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/
- 有效的括号
语言: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; } }
版权声明:本文为Ashiamd原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。