/// <summary>
/// 方法名:PiPei
/// 功能:判断输入的括号是否匹配
/// </summary>
/// <param name="strKuoHao">输入的括号</param>
/// <returns></returns>
public string PiPei(string strKuoHao)
{
string strSs = "";
Stack<char> stack=new Stack<char> ();
int nZhT = 1;
int i =0;
//try
//{
while (i < strKuoHao.Length && nZhT == 1)
{
foreach (char c in strKuoHao)
{
switch (c)
{
case '(':
stack.Push(c);
break;
case '[':
stack.Push(c);
break;
case '{':
stack.Push(c);
break;
case ')':
if (stack.Count > 0 && stack.Peek() == '(')
{
stack.Pop();
i++;
}
else nZhT = 0;
break;
case '}':
if (stack.Count > 0 && stack.Peek() == '{')
{
stack.Pop();
i++;
}
else nZhT = 0;
break;
case ']':
if (stack.Count > 0 && stack.Peek() == '[')
{
stack.Pop();
i++;
}
else nZhT = 0;
break;
}
}
}
//}
//catch (OutOfMemoryException ex)
//{
// MessageBox.Show(ex.Message);
//}
if (stack.Count == 0 && nZhT == 1)
strSs = "匹配";
else strSs = "不匹配";
return strSs;
}我写的一段关于查看括号匹配的 代码 但是 程序在输入单个括号 时会引发OutOfMemoryException异常 说是内存不足以继续执行程序 这是我第一次遇到这种情况不知道怎么解决 还请高手 帮忙
/// 方法名:PiPei
/// 功能:判断输入的括号是否匹配
/// </summary>
/// <param name="strKuoHao">输入的括号</param>
/// <returns></returns>
public string PiPei(string strKuoHao)
{
string strSs = "";
Stack<char> stack=new Stack<char> ();
int nZhT = 1;
int i =0;
//try
//{
while (i < strKuoHao.Length && nZhT == 1)
{
foreach (char c in strKuoHao)
{
switch (c)
{
case '(':
stack.Push(c);
break;
case '[':
stack.Push(c);
break;
case '{':
stack.Push(c);
break;
case ')':
if (stack.Count > 0 && stack.Peek() == '(')
{
stack.Pop();
i++;
}
else nZhT = 0;
break;
case '}':
if (stack.Count > 0 && stack.Peek() == '{')
{
stack.Pop();
i++;
}
else nZhT = 0;
break;
case ']':
if (stack.Count > 0 && stack.Peek() == '[')
{
stack.Pop();
i++;
}
else nZhT = 0;
break;
}
}
}
//}
//catch (OutOfMemoryException ex)
//{
// MessageBox.Show(ex.Message);
//}
if (stack.Count == 0 && nZhT == 1)
strSs = "匹配";
else strSs = "不匹配";
return strSs;
}我写的一段关于查看括号匹配的 代码 但是 程序在输入单个括号 时会引发OutOfMemoryException异常 说是内存不足以继续执行程序 这是我第一次遇到这种情况不知道怎么解决 还请高手 帮忙
public static string PiPei(string strKuoHao)
{
string strSs = "";
Stack<char> stack = new Stack<char>();
int nZhT = 1;
int i = 0;
//try
//{
while (i < strKuoHao.Length && nZhT == 1)
{
foreach (char c in strKuoHao)
{
switch (c)
{
case '(':
stack.Push(c);
i++;
break;
case '[':
stack.Push(c);
i++;
break;
case '{':
stack.Push(c);
i++;
break;
case ')':
if (stack.Count > 0 && stack.Peek() == '(')
{
stack.Pop();
i++;
}
else nZhT = 0;
break;
case '}':
if (stack.Count > 0 && stack.Peek() == '{')
{
stack.Pop();
i++;
}
else nZhT = 0;
break;
case ']':
if (stack.Count > 0 && stack.Peek() == '[')
{
stack.Pop();
i++;
}
else nZhT = 0;
break;
}
}
} //}
//catch (OutOfMemoryException ex)
//{
// MessageBox.Show(ex.Message);
//}
if (stack.Count == 0 && nZhT == 1)
strSs = "匹配";
else strSs = "不匹配";
return strSs;