【发布时间】:2021-04-10 07:52:24
【问题描述】:
我有一个字符串,我想迭代 .replace(re,'') 直到我实现并清空 sting ""。如何做到这一点,而不是一遍又一遍地重复相同的方法
var isValid = (s)=> {
const re = /(\(\))|(\[\])|(\{\})/gi
return s.replace(re,'').replace(re,'').replace(re,'').replace(re,'') !='' ? false :true
};
console.log(isValid("[({(())}[()])]"))
【问题讨论】:
-
可以replaceAll 帮忙吗?
-
改写(如果我没记错的话)你想递归地替换/删除具有"valid" 右括号?
-
@Roko C. Buljan 完全正确。
-
网上有很多帖子讨论解决这类问题。只是谷歌的“平衡括号算法”。他们中的大多数使用堆栈来执行此操作。这是一个讨论此问题的 SO 问题:stackoverflow.com/questions/16874176/….
-
请注意,堆栈方法在 O(n) 而不是 O(n^2) 中解决了这个问题。
标签: javascript regex