首页 > 解决方案 > 问题要求为匹配的括号返回 true,为不匹配的括号返回 false

问题描述

如果括号匹配,我需要返回 true,反之亦然。我很新,我需要帮助。

例如。

{} 真的

{{} 错误的

这是我的代码:

String left = "}";

String right = "{";

int LCount = 0;

int RCount = 0;

for(int i = 0; i < brackets.length(); i++)
{
    if(brackets.charAt(i) == right)
    {
        RCount++;
    }
    else
    {
        if(left)
        {
            LCount++;
        }
    }
}

if(LCount == RCount)
{
    return true;
}
else
{
    return false;
}

我收到很多语法错误。

标签: java

解决方案


您的解决方案计算右括号和左括号的数量。它将为“}{”返回 true。理想情况下,您可以使用如下所示的单个计数器来实现该行为。

int count=0;
for(int i = 0; i < brackets.length(); i++)
{
    if(brackets.charAt(i) == '{')
    {
        count++;
    }else {
      count --;
    }
    //number of left bracket is greater than right
    if(count<0) return false;
}
//check all opening bracket have a corresponding closing bracket
return count==0;

推荐阅读