給出函數,實現功能 int nesting(String s);輸入一個由(和)組成的字符串S,如果S表示一個格式正確的括號,表達式則返回1,否則返回0.例如:(((())))() 為正確的((()) 為不正確的問題補充: 這個問題是要求輸入自己輸入括號,然后由程序判斷輸入的括號是正確還是錯誤
2 回答

偶然的你
TA貢獻1841條經驗 獲得超3個贊
我不知道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是個函數,如果不是的話就去掉那對括號吧。

一只甜甜圈
TA貢獻1836條經驗 獲得超5個贊
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表示(和)的數量不批配
添加回答
舉報
0/150
提交
取消