判断一个括号字符串是否匹配正确,如果括号有多种,怎么做?如(([]))正确,[[(()错误。
判断一个括号字符串是否匹配正确,如果括号有多种,怎么做?如(([]))正确,[[(()错误。
解题思路:可使用栈来保存符号,凡是左括号就压栈,凡是右括号就出栈,最后如果栈为空就匹配正确
boolean isMatch(String s) { Stack<Character> sk = new Stack<Character>(); for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == '(') { sk.push('('); } if (s.charAt(i) == ')') { if (!sk.isEmpty() && sk.pop() == '(') continue; else return false; } if (s.charAt(i) == '[') { sk.push('['); } if (s.charAt(i) == ']') { if (!sk.isEmpty() && sk.pop() == '[') continue; else return false; } } if (sk.isEmpty()) return true; else return false; }
注:栈可用于解决类似符号匹配问题