【发布时间】:2022-11-03 01:39:55
【问题描述】:
我最近有一次面试,你必须递归地遍历一个字符串,如果它包含AB || BA || CD || DC,它必须从数组中删除。您将递归地检查这一点,因为从ACDBB 中删除CD 会给您一个AB,然后您必须删除它才能将B 作为字符串返回。
这就是我所拥有的,当我对其进行测试时,我发现它在循环深处提出了正确的答案,但它永远不会回到顶部。
我错过了什么?
const LETTERS = [/AB/g, /BA/g, /CD/g, /DC/g];
const stringGame = (string) => {
let newString = '';
if(string.length <= 1) return string;
LETTERS.forEach(regExToCheck => {
if(string.match(regExToCheck)) {
newString = string.replace(regExToCheck, '')
}
stringGame(newString);
})
return newString
}
// Expect answer: CAACC
console.log(stringGame('ABDCABCABAAABCCCD'))
【问题讨论】:
标签: javascript recursion