java 使用Stack来判断Valid Parentheses

假如定义形如"{}[]()"或者"{[()]}"的模式为valid,"[{]"或者"(("的模式为invalid,那么我们可以使用一个stack或者递归下降的方法实现.

这里我先用stack实现一次.

实现的思路是.

当遇到开始符号时('[','{'或者'('),我们就将其push进栈。当遇到结束符号的时候,就pop盏里面的元素看是否匹配,否则返回false.

    public boolean isValid(String s) {
char[] cs = s.toCharArray();
if (cs.length % 2 != 0)
return false;
Stack<Character> stack = new Stack<Character>();
for(int i=0;i<cs.length;i++){
if(cs[i]=='[' || cs[i] == '(' || cs[i] == '{'){
stack.push(cs[i]);
}else{
if(stack.isEmpty()) return false;
switch (stack.pop()){
case '(':
if(cs[i]!=')') return false;
break;
case '[':
if(cs[i]!=']') return false;
break;
case '{':
if(cs[i]!='}') return false;
break;
}
}
}
if(!stack.isEmpty()) return false;
return true;
}
上一篇:plist文件的读取和xib加载cell


下一篇:IOS 获取.plist文件的数据