我想检查一个字符串是否有匹配的大括号、方括号或括号。
For example:
{}
()
[]
我可以用堆栈做到这一点。我想用递归来做。我正在阅读类似问题的答案,答案是递归与堆栈混合。一位用户回复了这些答案,说递归也是一个堆栈,因此您的递归方法不应该在参数中包含堆栈——这对我来说很有意义。
不过我有一个大问题,我正在向后查看字符串,并且总是删除我检查的最后一个位置,直到字符串为空,所以我返回 true。如果我的方法中没有额外的参数来保存我要查找的内容,我无法想象如何检查特定部分、大括号、方括号或括号。然而,我一直认为必须有一种更简单的方法来做到这一点。
public boolean isBalanced(String in)
{
if(in.isEmpty())
return true;
if(in.charAt(in.length()) == '}')
{
return recIsBalanced(in.substring(0, in.length()));
}
else if(in.charAt(in.length()) == ']')
{
}
return recIsBalanced(in.substring(0, in.length()));
}