示例: 从字符串"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;
}