我正在尝试做一个练习题,我必须编写一个方法,该方法接受一串大括号,如果括号匹配则返回 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) == '{'
。
关于java - 使括号匹配的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48359565/