首页 新闻 赞助 找找看

输入输出"("和")",判断输入是否正确

0
悬赏园豆:5 [已关闭问题]

给出函数,实现功能

  int nesting(String s);

输入一个由(和)组成的字符串S,如果S表示一个格式正确的括号,表达式则返回1,否则返回0.

例如:

(((())))() 为正确的

((()) 为不正确的

问题补充: 这个问题是要求输入自己输入括号,然后由程序判断输入的括号是正确还是错误
赞、佳美的主页 赞、佳美 | 初学一级 | 园豆:175
提问于:2009-07-07 11:51
< >
分享
其他回答(2)
0

我不知道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是个函数,如果不是的话就去掉那对括号吧。

斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-07-07 14:44
0
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#写的 ,不知道是不是你想要的。如果用其他语言写。该一下救行了

牛牛博客 | 园豆:305 (菜鸟二级) | 2009-07-07 16:41
0

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表示(和)的数量不批配

Gray Zhang | 园豆:17610 (专家六级) | 2009-07-08 11:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册