题解 | #有效括号序列#
有效括号序列
https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return bool布尔型 */ public boolean isValid (String s) { // write code here Stack s1 = new Stack(); //遍历字符串 for(int i = 0;i<s.length();i++){ //所有类型左括号入栈 if(s.charAt(i) == '(' || s.charAt(i) == '[' || s.charAt(i) == '{') { s1.push(s.charAt(i)); } //遍历到右括号出栈 else{ //栈为空,匹配不上 if(s1.isEmpty()){ return false; } //栈不为空,出栈,判断当前遍历到的右括号和出栈的左括号是否配对(类型一样) char ch = (char)s1.pop(); if(ch == '(' && s.charAt(i) == ')' || ch == '[' && s.charAt(i) == ']' || ch == '{' && s.charAt(i) == '}'){ continue; }else{ return false; } } } //遍历完字符串,栈不为空,括号不匹配 if(!s1.isEmpty()){ return false; } return true; } }