制作括号匹配的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了制作括号匹配的方法相关的知识,希望对你有一定的参考价值。

我正在尝试做一个练习问题,我必须编写一个带有大括号括号的方法,如果括号匹配则返回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) == '{'吧。

以上是关于制作括号匹配的方法的主要内容,如果未能解决你的问题,请参考以下文章

编写代码片段的更简洁的方法

[ jquery 文档处理 insertBefore(content) before(content|fn) ] 此方法用于把所有匹配的元素插入到另一个指定的元素元素集合的前面,实现外部插入(代码片段

vscode如何更改括号匹配后的颜色?

括号匹配方案

易语言中的‘括号符不匹配’如何解决

括号匹配算法