【发布时间】:2017-04-24 16:19:48
【问题描述】:
我有一个字符串"abcdef" 我想递归更改。如果找到字符cha,则应将所有字符替换为另一个字符chb
前任。
如果cha = 'd',修改后的字符串变成“xxxxef”(如果chb = 'x')。
如果是cha = 'g',则不应更改字符串。
这是我尝试过的
string myString = "abcdef";
char[] str = myString.ToCharArray();
void FindInString(int p)
{
if (p < str.Length-1)
{
if (str[p] != cha)
FindInString(p + 1);
}
str[p] = chb;
}
我对递归的不理解是在它回来的路上发生了什么,即。如何为该行编写条件
str[p] = chb;
【问题讨论】:
-
为什么需要递归?我会简单地使用一个循环......
-
@atlaste 听起来像家庭作业...学习递归
-
写
else if -
对,在这种情况下,我的答案是:使用调试器“步入”、“跳过”功能。
-
如果是作业学习递归,老师应该当众处罚。我想不出一个最糟糕的例子