我目前正試圖想出一個代碼,該代碼將掃描字符串 並檢查每行上是否有偶數個打開和關閉括號。如果是這樣,它會返回true。 (請原諒我在格式化不正確,但我不能讓例子正確初具規模,除非我確定它的代碼)試圖獲取代碼來檢查是否有括號
{} // The code would return true
{{}}
{}{}
{{{}{{}}}}
} // The code would return false
{}
}}{
{{{}{}
我試了一下,到目前爲止:
public boolean bracketsMatch(String brackets)
{
int lb = 0;
int rb = 0;
int i = 0;
while (brackets.charAt(i) == '{' || brackets.charAt(i) == '}' || brackets.charAt(i) == '')
{
if (brackets.charAt(i) == '{')
{
lb += 1;
}
if (brackets.charAt(i) == '}')
{
rb += 1;
}
if (brackets.charAt(i) == '')
{
if (lb/rb == 2)
{
// Is it possible to get the code scan the next line to next line?
// need an extra statement here for ^^ before I can place the if statement below
if (bracket.charAt(i + 1) == '')
{
return true;
}
}
else
{
return false;
}
}
i++
}
}
我提前道歉對於任何有經驗的程序員來說,這將是一場無效的噩夢。一般來說,我對編程相對來說比較陌生。我試圖讓代碼檢查左括號(lb)和右括號(rb)的數量。只要代碼到達空字符串,它就會將lb除以rb。如果代碼不等於2,代碼將返回false。我在這段代碼中可能有十多個錯誤,但我想知道是否有任何方法讓代碼進入下一行來掃描下一組括號。感謝您提前提供任何幫助。
編輯1:
public boolean bracketsMatch(String brackets)
{
int balance = 0;
for (int i = 0; i < brackets.length(); i++)
{
char value = brackets.charAt(i);
if (value == '{')
{
balance += 1;
}
else if (value == '}')
{
balance -= 1;
}
}
if (balance != 0)
{
return false;
}
else
{
return true;
}
}
第一個示例返回true,因爲每行上都有偶數個括號。第二個可能有一個{},但大多數行的開放和閉合括號數量不等。 –
要驗證括號是否平衡,您需要'lb == rb',而不是'lb/rb == 2'。而且這個代碼不會編譯,因爲''''不是一個有效的字符文字。 –
在正常的括號內使用時,'{'必須在'}之前嗎?換句話說,這條線應該是什麼結果:'} {'?此外,你的行只包含括號,或者可以是,例如,「{ok}」? –