我正在尝试做一个练习问题,我必须编写一个方法,该方法使用一串花括号,如果括号匹配则返回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) == '{'

10-06 10:18