【发布时间】:2019-02-19 00:13:13
【问题描述】:
我希望能够获得string 并检查Parentheses 是否有效。
例如:
"(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。您对我需要添加什么以使程序正确运行有什么建议吗?
【问题讨论】:
-
@NikhilKS 也许他对正则表达式不了解或不够自信,有时正则表达式可能令人生畏。