【发布时间】:2020-10-23 16:41:37
【问题描述】:
问题描述:https://rosettacode.org/wiki/Balanced_brackets
出于某种原因,Freecodecamp 认为我的解决方案无法包含在他们的目录中,我只想确认一下 https://forum.freecodecamp.org/t/additional-solution-for-rosetta-code-balanced-brackets/426226
我意识到,在平衡括号系统中,必须始终至少有一个等于[] 的子字符串,因为平衡括号需要相对的括号彼此面对,并且不能有空格。此外,[] 的所有实例都可以重复删除,直到出现空字符串。
我在我能找到的所有测试用例上都尝试了这段代码,并且每次都有效。
function isBalanced(str) {
while (true) {
str = str.replace('[]', '');
if(str.length==0){
return true;
}
if(str[0]==']'||str[str.length-1]=='['){
return false;
}
}
}
【问题讨论】:
-
使用堆栈。每次你有一个开放的括号,推动。当你发现一个封闭的括号弹出。在字符串的末尾查看堆栈是否为空。
-
“我在我能找到的所有测试用例上都尝试了这段代码,并且每次都有效。” - 那么问题/疑问是什么?
-
这个解决方案可行,但效率不高,因为你反复调用
replace,它会多次扫描字符串,而这可以通过一次扫描来完成。 -
出于某种原因,Freecodecamp 认为我的解决方案无效,我只想确认一下forum.freecodecamp.org/t/…
-
@trincot 我去看看,谢谢
标签: javascript loops brackets rosetta-code