示例: 從字符串「8816168168」遞歸刪除「816」。 結果將是「8」;如何從字符串遞歸刪除子串而不使用遞歸?
是否有任何其他方式來實現此功能而不使用遞歸?
遞歸可能會喜歡:
function deleteSubstring($string){
//...
return deleteSubstring($subString);
}
我不需要這個解決方案。還有其他嗎? 您可以使用任何語言或僞代碼。
示例: 從字符串「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
與regxexp會解決它......
str.replace(/(816)/g, '')
...但是,一個返回8168
。
所以我仍然需要這種循環通過:
function cleanString(str, removeStr) {
while (str.indexOf(removeStr) != -1) {
str = str.replace(new RegExp(removeStr, 'g'), '');
}
return str;
}
除了正則表達式,我們可以使用repalceAll函數,例如str.replaceAll('816')。這個函數在java語言中可用 –
* 「遞歸不使用遞歸」 * - ? - 你的意思是使用循環? –
目前還不清楚你的意思是「遞歸地從字符串中刪除子串」,你帶來的「示例」根本無助於闡明這一點,而你展現的代碼沒有任何意義。 –