20、
分析:
这道题括号与我们学的栈相吻合,先进后出,判断进来的元素和她前面一个元素是否匹配,如果不匹配就让下一个元素进栈;如果匹配就将这两个元素弹栈,最终如果栈为空就说明括号符合要求。
代码实现
class Solution {
public boolean isValid(String s) {
if(s.length()==0){
return true;
}
char[] newString=new char[s.length()];
int top=-1;
for(int i=0;i<s.length();i++){
top+=1;
newString[top]=s.charAt(i);
if(top==0){
continue;
}else{
if(newString[top-1]=='('&&newString[top]==')'||newString[top-1]=='['&&newString[top]==']'||newString[top-1]=='{'&&newString[top]=='}'){
top-=2;
}
}
}
if(top==-1){
return true;
}else{
return false;
}
}
}
运行结果
输入: "{[]}"
输出: true
输入: "([)]"
输出: false
输入: "(]"
输出: false
输入: "()[]{}"
输出: true
输入: "()"
输出: true