如何在不使用递归的情况下递归地从字符串中删除子字符串?



示例: 从字符串"8816168168"中递删除"816"。 结果将为"8";

有没有其他方法可以在不使用递归的情况下实现这个函数?

递归可能如下所示:

function deleteSubstring($string){
//...
return deleteSubstring($subString);
}

我不需要这个解决方案。还有其他的吗? 您可以使用任何语言或伪代码。

使用while循环的Javascript解决方案:

function deleteSubstring(str1, str2){
while(str1.indexOf(str2) > -1)
str1 = str1.replace(str2, '');

return str1;
}
console.log(deleteSubstring('8816168168','816'));

编写一个 for 循环。

function deleteSubstring($string){
while($substring.isEmpty()){
...... ...
code for the deleting the substring
......... 
}
return $string
}

我理解这个难题。我最初以为使用正则表达式的简单.replace可以解决它......

str.replace(/(816)/g, '')

。但是那个返回8168.

所以我仍然需要循环这个:

function cleanString(str, removeStr) {
while (str.indexOf(removeStr) != -1) {
str = str.replace(new RegExp(removeStr, 'g'), '');
}
return str;
}

最新更新