我不知道Java的string是否支持索引器访问字符,如果支持的话就是这么写:
int x=0;
for(int i=0;i<s.Length();i++)
{
if(s[i]=='(')x+=1;
else if(s[i]==')')x-=1;
if(x<0)break;
}
return x==0?1:0;
红色字符说明:印象中Java的字符串Length是个函数,如果不是的话就去掉那对括号吧。
Code
string str = "(()()())()()())";
string l = "";
while (str.IndexOf("()")>-1)
{
str = str.Replace("()","");
l += str+"<br/>";
}
if (str.Length > 0)
{
Response.Write("不正确");
}
else
{
Response.Write("正确");
}
用一个循环救可以判断了,代码是用c#写的 ,不知道是不是你想要的。如果用其他语言写。该一下救行了
int count = 0;
for (int i = 0; i < str.Length; i++) {
if (str[i] == '(') {
count++;
}
else if (str[i] == ')') {
count--;
if (count < 0) {
return false; //此处表示先有)再有(,如())这种形式
}
}
else {
return false; //遇到了不是(或)的符号
}
}
return (count == 0); //如果coutn不为0表示(和)的数量不批配