今天来玩一个有趣的编程任务!想象一下,你有一个字符串 `"HelloWorldHelloWorld"`,现在需要编写一个C++函数,利用递归逻辑删除其中的所有子串 `"World"`,并统计删除了多少次。听起来是不是很酷?😎
首先,定义你的递归函数。每次检查字符串开头是否包含 `"World"`,如果包含,就删除它,并继续检查剩下的部分。如果不包含,则停止递归。这个过程就像剥洋葱一样,一层层去掉不需要的部分。 onion:
```cpp
int removeSubstr(std::string& str, const std::string& substr) {
if (str.find(substr) == std::string::npos) {
return 0; // 找不到子串,停止递归
}
str.erase(str.find(substr), substr.length()); // 删除找到的子串
return 1 + removeSubstr(str, substr); // 计数+1,继续查找
}
```
最后,调用这个函数并输出结果!比如 `"HelloWorldHelloWorld"` 会变成 `"HelloHello"`,删除了两次 `"World"`。🎉
快来试试吧,看看你能用递归解决多少类似的问题!💪
免责声明:本文由用户上传,如有侵权请联系删除!