加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
左右括号匹配.js 1.39 KB
一键复制 编辑 原始数据 按行查看 历史
张先生 提交于 2021-08-15 21:20 . 20210815
// 左右括号匹配,把不匹配的
/**
* 你将得到一个由小写字母 a-z ,左括号 '(' 和右括号 ')' 构成的字符串 s。
你的任务是删除尽可能少的括号,使得 s 里面的括号匹配。
你需要返回删除括号后的字符串。
由于答案可能会有很多,所以你只需要返回任意一个正确答案。
例如:"()", "(())", "()()", "(())()" 是括号匹配的字符串, 而 ")(", "(()", "()()(", "()())" 则是括号不匹配的字符串。
没有括号的字符串(如:abcd)或空串 "" 也算一个括号匹配的字符串。
0 \leq0≤ s 的长度 \leq 10^5≤10
5
你只能对原串进行括号删除的操作,其他操作将不被允许。
样例
样例1:
输入:
s = "a(b(c(de)fgh)"
输出:
"a(b(cde)fgh)"
解释:
正确答案有三个:"ab(c(de)fgh)","a(bc(de)fgh)","a(b(cde)fgh)"。
你只需要返回任何一个。
样例2:
输入:
s = "((("
输出:
""
解释:
空串也属于括号匹配的字符串。
*/
var strss = "nihao()())"
function DeleteKH(str){
let Lstack = [];
let Rstack = [];
let arr = str.split("");
// 放入数组
arr.map((item,index)=>{
if(item=="("){
Lstack.push({item,index});
}
if(item==")"){
Rstack.push({item,index});
let i = 0
}
})
}
// DeleteKH("(Hello()()")
DeleteKH(strss)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化