問題描述
有效字符串需滿足:
左括號必須用相同類型的右括號閉合控漠。包括:“( )”,“[ ]”,“{ }”。
左括號必須以正確的順序閉合悬钳。
注意空字符串可被認(rèn)為是有效字符串盐捷。
// 括號匹配問題
public static boolean isMatch(String str){
Stack<Character> stack = new Stack();
for (int i = 0, len =str.length(); i<len;i++){
char ch = str.charAt(i);
if (ch == '{' || ch == '[' || ch == '(' ){
stack.push(ch);
}
if (ch == '}' || ch == ']' || ch == ')' ){
if (stack.isEmpty()){
return false;
}
// 如果棧頂元素和下一個右括號相匹配,則將其棧頂元素出棧
if ((stack.peek() == '(' && ch == ')')
|| (stack.peek() == '[' && ch == ']')
|| (stack.peek() == '{' && ch == '}') ) {
stack.pop();
}
}
}
return stack.isEmpty();
}