问题要求匹配的括号返回true,不匹配的括号返回false

时间:2019-01-25 02:29:05

标签: java

如果方括号匹配,我需要返回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;
}

我遇到很多语法错误。

2 个答案:

答案 0 :(得分:1)

您的解决方案计算右括号和左括号的数量。对于“} {”,它将返回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;

答案 1 :(得分:0)

将char数据类型用于左右

*String left = "}";  ==> char left = '}';
*String right = "{"; ==> char right = '{';

更改第二条if语句的条件

*if(left) ==> if(brackets.charAt(i) == left)