给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
这个是刷LeetCode第20题的时候,当时想了很长的时间去解决,发现没有头绪,后来网上去百度解法,发现很多都写的挺复杂的看不懂。后来终于想到了一个解法,希望能给大家提供一个不同的思路。
public boolean isValid(String s) {
//假如长度是1或者不为偶数
if(s.length()<2||s.length()%2!=0){
if(s.isEmpty()){
return true;
}
else{
return false;
}
}
int count = 0;
int length = s.length();
//循环替换,最大次数为s.length()/2
while(count<length/2){
s = s.replace("{}","").replace("[]","").replace("()","");
count++;
}
//假如循环替换完,还有值,那么肯定就不是对称结构
if(s.length()>0){
return false;
}
else{
return true;
}
}