我希望能够获取一个字符串并检查其括号是否有效。
例如:
这是我尝试过的方法:
例如:
"(ew)[]" - this will be valid.
"(ew[)]" - this will be not valid.
这是我尝试过的方法:
public static bool CheckString(string input)
{
int braceSum = 0, squareSum = 0, parenSum = 0;
foreach (char c in input)
{
if (c == '{')
braceSum++;
if (c == '}')
braceSum--;
if (c == '[')
squareSum++;
if (c == ']')
squareSum--;
if (c == '(')
parenSum++;
if (c == ')')
parenSum--;
//check for negatives (pair closes before it opens)
if (braceSum < 0 || squareSum < 0 || parenSum < 0)
return false;
}
return (braceSum == 0 && squareSum == 0 && parenSum == 0);
}
因此,在这两种情况下,我的代码都将返回true
。您有什么建议,以便程序能够正确地工作?