问题:
现在,有一行括号序列,请你检查这行括号是否配对。括号序列只含有"[","]","(",")"四种字符
分析:
我们用stack来保存所有的字符,遇到字符 ‘[’ 或者 ‘(’, 我们把它压入stack中,遇到‘]’ 或者‘)’,我们看当前栈顶的是否是字符所对应的括号,是,则把相对应的括号取出,不是则return false.
代码:
public class BraceMatch {
public static boolean braceMatch(String str) {
Stack<Character> stack = new Stack<Character>();
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == '[' || str.charAt(i) == '(') {
stack.push(str.charAt(i));
} else if (str.charAt(i) == ']' && stack.peek() == '[') {
stack.pop();
} else if (str.charAt(i) == ')' && stack.peek() == '(') {
stack.pop();
} else {
return false;
}
}
return true;
}
public static void main(String[] args) {
System.out.println(braceMatch("[(])"));
}
}
转载请注明出处:
http://blog.youkuaiyun.com/beiyeqing
teng