题目
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b18ec634b9d422e992da23a7122f802d.png#pic_center)
解题思路:迭代循环
- 首先应该知道这题目总共包括两种合法字符串,一种就是【】直接是一个完整的符号,或者是一个完整的符号内好包括其他的,比如(【】)。
- 所以只要去把[],(),{},这些去找出来删掉,删到最后在判断是否为空,为空代表true有效。
代码
class Solution {
public boolean isValid(String s) {
if(s==null || s.length()==0){
return true;
}
StringBuilder sb = new StringBuilder(s);
while(!(sb.indexOf("[]")==-1&&sb.indexOf("()")==-1&&sb.indexOf("{}")==-1)){
if(!(sb.indexOf("[]")==-1)){
sb = sb.delete(sb.indexOf("[]"),sb.indexOf("[]")+2);
}
if(!(sb.indexOf("()")==-1)){
sb = sb.delete(sb.indexOf("()"),sb.indexOf("()")+2);
}
if(!(sb.indexOf("{}")==-1)){
sb = sb.delete(sb.indexOf("{}"),sb.indexOf("{}")+2);
}
}
return sb.length()==0?true:false;
}
}