C# 如何检查括号是否相同

C# 如何检查括号是否相同,c#,C#,我想检查输入字符串是否包含相同数量的开/闭括号。如果是,则打印为真,否则为假。我已经写了这段代码,但有一些错误,有人可以帮助吗 如果我输入一个字符串“()”,该字符串以开括号开始,以闭括号结束,则可以正常工作,但如果我输入“()”,则它仍会打印出true?。输出应为: () = true (())=true ()) = false (() = false )( = false )(() = false etc... 谢谢你的帮助 编辑: 使用系统; 公共课程 { 公共图书馆 { 勾选括号(

我想检查输入字符串是否包含相同数量的开/闭括号。如果是,则打印为真,否则为假。我已经写了这段代码,但有一些错误,有人可以帮助吗

如果我输入一个字符串“()”,该字符串以开括号开始,以闭括号结束,则可以正常工作,但如果我输入“()”,则它仍会打印出true?。输出应为:

() = true
(())=true
()) = false
(() = false
)( = false
)(() = false 
etc...
谢谢你的帮助

编辑:

使用系统;
公共课程
{
公共图书馆
{
勾选括号(“()”);
}
公共void检查圆括号(字符串输入圆括号){
int开括号=0;
int闭括号=0;
for(int i=0;i< /代码> 如果有比关闭更大的数目,那么它应该返回一个false,对吗?所以,你可以只在循环的中间加上:

     if (closeParentheses > openParentheses) {
         Console.WriteLine("false");
     }

如果有比封闭更大的闭合数,它应该返回一个假,对吗?所以,你可以在循环的中间加上:

     if (closeParentheses > openParentheses) {
         Console.WriteLine("false");
     }

不必计算开/闭括号,您可以检查它们的顺序

public void CheckParentheses(string inputParentheses)
{
    // Level counter
    int parenLevel = 0;
    for (int i = 0; i < inputParentheses.Length; i++)
    {
        // Open always good, increment the level
        if (inputParentheses[i] == '(')
            parenLevel++;
        else if (inputParentheses[i] == ')')
            parenLevel--;

        // Closing good, but only if the level doesn't drop under zero
        if (parenLevel < 0)
        {
            Console.WriteLine("false");
            return;
        }
    }
    // At the end of the loop, the level should always be zero
    if(parenLevel != 0)
        Console.WriteLine("false");
    else
        Console.WriteLine("true");
}
public void检查圆括号(字符串输入圆括号)
{
//液位计
int parenLevel=0;
for(int i=0;i
您可以检查其顺序,而不是计算开/闭括号

public void CheckParentheses(string inputParentheses)
{
    // Level counter
    int parenLevel = 0;
    for (int i = 0; i < inputParentheses.Length; i++)
    {
        // Open always good, increment the level
        if (inputParentheses[i] == '(')
            parenLevel++;
        else if (inputParentheses[i] == ')')
            parenLevel--;

        // Closing good, but only if the level doesn't drop under zero
        if (parenLevel < 0)
        {
            Console.WriteLine("false");
            return;
        }
    }
    // At the end of the loop, the level should always be zero
    if(parenLevel != 0)
        Console.WriteLine("false");
    else
        Console.WriteLine("true");
}
public void检查圆括号(字符串输入圆括号)
{
//液位计
int parenLevel=0;
for(int i=0;i
公共静态布尔校验圆括号(字符串输入圆括号)
{
如果((InputParents.Length%2)!=0 | | InputParents[0]==')'| | InputParents[InputParents.Length-1]=='(')
返回false;
for(int i=0;i