我正在尝试做一个练习问题,我必须编写一个方法,该方法使用一串花括号,如果括号匹配则返回true,否则返回false。如果我传递了空字符串,则需要返回true。我们还可以假设给定的字符串中可以包含{和}或为空。
匹配必须以正确的配对顺序进行,例如“{}”而不是“} {”
这些是括号匹配的示例:
{}
{} {}
{{}}
{{{} {{}}}}
这些是括号不匹配的示例:
{
} {
{{}
{{}}} {}
这是我目前拥有的(请记住,我是编码的新手):
public boolean bracketsMatch(String brackets)
{
int count = 0;
if (brackets.length() % 2 == 1){
return false;
}
for(int i = 0; i < brackets.length(); i++){
if ((brackets.charAt(i)+"") == "{"){
count++;
} else if ((brackets.charAt(i)+"") == "}"){
count--;
}
if (count == -1){
return false;
}
}
return count == 0;
}
像} {和{}} {} {这样的输入仍然无法返回正确的输出。
最佳答案
您的逻辑有效,但是比较字符的方式是错误的:永远不要使用==
比较字符串值-它会测试引用是否相等(它们是否是同一对象)。请尝试brackets.charAt(i) == '{'
。