题解 | #有效括号序列#
有效括号序列
https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2
方法一: private static boolean isValid(String str) { Stack<Character> stack = new Stack<>(); boolean valid = false; char[] strs = str.toCharArray(); if (strs[0] == ')' || strs[0] == ']' || strs[0] == '}') { return false; } for (int i = 0; i < strs.length; i++) { char temp = strs[i]; if (temp == '(' || temp =='[' || temp=='{') { stack.push(temp); } else { char c = stack.pop(); if ((c == '(' && temp == ')') || (c == '[' && temp == ']') || (c == '{' && temp == '}') ){ continue; } else { return false; } } } if (stack.isEmpty()) { valid = true; } return valid; }简化版方法二:private static boolean isValid2(String str) { Stack<Character> stack = new Stack<>(); for (int i = 0; i < str.length(); i++) { if (str.charAt(i) == '(') { stack.push(')'); } else if (str.charAt(i) == '[') { stack.push(']'); } else if (str.charAt(i) == '{') { stack.push('}'); } else if (stack.isEmpty() || stack.pop() != str.charAt(i)) { return false; } } return stack.isEmpty();
#牛客网在线编程#