我正在尝试编写一个方法,该方法需要一个大括号的字符串,并且如果括号匹配则返回true,否则返回false。布尔方法,如果括号匹配返回true
这些括号匹配的例子:
{}
{} {}
{{}}
{{{} {{}}}}
这些是不匹配的括号的示例:
{
} {
{{}
{{}}} {}
我无法找出正确的逻辑这后面的代码。我首先尝试了length()mod 2,并且只有当结果为0时,该方法才会返回true。但显然,有一个错误,因为即使对于像{}这样的字符串,它也会返回true。我添加了一些检测{,如果没有找到}的代码,它会自动返回false。但我仍然收到错误。
这里是我的代码:
public boolean bracketsMatch(String brackets)
{
if(!(brackets.length() % 2 == 0))
{
int i = 0;
int j = 0;
boolean check = false;
while(brackets.charAt(i) == '{')
{
for(int o = i + 1; o < brackets.length(); o++)
{
if(o == '}')
{
check = true;
break;
}
else
{
j++;
}
}
if(check == false)
return false;
i + = j;
}
return true;
}
else
{
return false;
}
}
会是什么这个问题的正确的逻辑,和我做我什么错误?谢谢!
试试看['CodeGolf'](http://codegolf.stackexchange.com/)。我在一篇文章中看到过这样的逻辑。 –
或几乎任何使用这个作为测试用例的堆栈教程。 – csmckelvey
你在找什么,被称为“平衡圆括号”,可以在这里找到SO,例如在这里http://stackoverflow.com/questions/14930073/how-to-check-if-a-string-is-balanced – Jan