创建一个函数,该函数接受字符串作为输入,删除括号之间的所有内容,并返回修改后的字符串。如果左右括号的数量不匹配,则返回空字符串
我必须创建一个函数,删除括号之间的所有内容,并返回不包含括号的字符串。
例如,输入12(3(45))67(8)912679.
如果括号数不正确,返回一个空字符串。
这是我的方法:
function removeContent(str) {
let leftP = 0, rightP = 0;
// wrong number of parentheses scenario
for( let i = 0; i < str.length; i++) {
if(str[i] === '(' ) leftP++;
if(str[i] === ')' ) rightP++;
}
if( leftP !== rightP) return "";
// remove the content otherwise
}
console.log(removeContent('12(3(45))67(8)9'));
不知道如何在配对括号之间进行组合并删除内容。
一种简单的方法是跟踪括号计数,然后仅在括号计数等于0时输出字母。
在末尾,如果括号计数不为零,您还可以告诉它按照请求返回空字符串..
如. .
function removeContent(string) {
let bracketCount = 0;
let output = '';
for (const letter of string) {
if (letter === '(') bracketCount += 1
else if (letter === ')') bracketCount -= 1
else if (bracketCount === 0) output += letter;
}
return bracketCount === 0 ? output : '';
}
console.log(removeContent('12(3(45))67(8)9'));
console.log(removeContent('12(345))67(8)9'));
console.log(removeContent('1(2)(3)45(7)8(((9)))77'));
用正则表达式/(+[d(]*)+/g
代替查找