给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断所组成的括号串是否有效。
有效字符串如:{}()[]
、{[()]}
解决思路:
如果有效则至少会有一对括号相邻,如
{()}
,每次循环消掉任意一对括号,由于消掉的是一对括号,所以只需消掉s.length()/2
次即可,最终剩余空串表示该括号串是有效的。
class Solution {
public boolean isValid(String s) {
int length = s.length() / 2;
for (int i = 0; i < length; i++) {
s = s.replace("()", "").replace("{}", "").replace("[]", "");
}
return s.length() == 0;
}
}