碰到括号的问题,一般都用递归
找到与s[0]匹配的括号s[i],然后看【s[0]】 substring1 【s[i]】 substring2
的两个子串是否valid。遇到子串为空返回true;
public class Solution {
public boolean isValid(String s) {int i;
int n=s.length();
if(n==0)
return true;
char tmp=s.charAt(0);
int same=1;
for(i=1;i<n;i++)
{
if(s.charAt(i)==tmp)
same++;
if(tmp=='('&&s.charAt(i)==')')
{
same--;
if(same==0)
break;
}
if(tmp=='['&&s.charAt(i)==']')
{
same--;
if(same==0)
break;
}
if(tmp=='{'&&s.charAt(i)=='}')
{
same--;
if(same==0)
break;
}
}
if(i==n)
return false;
return isValid(s.substring(1,i))&&isValid(s.substring(i+1,n));
}
}