判断一个括号字符串是否匹配正确,如果括号有多种,怎么做?如(([]))正确,[[(()错误。

解题思路:可使用栈来保存符号,凡是左括号就压栈,凡是右括号就出栈,最后如果栈为空就匹配正确

booleanisMatch(Strings){Stack<Character>sk=newStack<Character>();for(inti=0;i<s.length();i++){if(s.charAt(i)=='('){sk.push('(');}if(s.charAt(i)==')'){if(!sk.isEmpty()&&sk.pop()=='(')continue;elsereturnfalse;}if(s.charAt(i)=='['){sk.push('[');}if(s.charAt(i)==']'){if(!sk.isEmpty()&&sk.pop()=='[')continue;elsereturnfalse;}}if(sk.isEmpty())returntrue;elsereturnfalse;}

注:栈可用于解决类似符号匹配问题