有一组括号 ((((()()))()()())类似于这样的,写一个算法,判断这样的括号是不是成对的。
private string ReturnStr(string str)
{
string myStr = str;
string[] strTemp = myStr.Split(',');
do
{
strTemp = myStr.Split(',');
for (int i = 0; i < strTemp.Length; i++)
{
if (strTemp[i] != "")
{
string starStr = strTemp[i];
string endStr = i+2 <= strTemp.Length ? strTemp[i + 1] : "";
if (starStr == "(" && endStr == ")")
{
strTemp[i] = "";
strTemp[i + 1] = "";
}
}
}
myStr = "";
for (int i = 0; i < strTemp.Length; i++)
{
if (strTemp[i] != "")
{
myStr += strTemp[i] + ",";
}
}
myStr.TrimEnd(',');
} while (myStr.Length>2);
myStr.TrimEnd(',');
return myStr;
}
本文介绍了一个用于检查括号是否正确配对的简单算法。通过不断寻找并移除字符串中的成对括号,直到无法找到更多匹配对为止。最终剩余的字符串长度小于等于2时,则认为原始括号串是有效配对的。
95

被折叠的 条评论
为什么被折叠?



