我最近在一次采访中被问到这个问题。作为一个刚毕业的学生,并且只编程了大约 2 年(所有学校工作),我不知所措。我有一个模糊的想法,但我确定我失败了。这是我写的:
string Reverse(string word, string reversed)
{
if(word.length() == 0)
{
return reversed;
}
else
{
string temp;
reversed = word.substr(0,1) + reversed;
temp = word.substr(1);
Reverse(temp, reversed);
}
return reversed;
}
现在我到家了,我正在测试它,返回的只是输入中的第一个字母。我对递归的概念模糊熟悉,但我显然在这方面失败了。非常感谢任何帮助/指针/建议。谢谢你。
编辑:在 Dennis Meng 的帖子之后,我做了以下更改:
string Reverse(string word, string reversed)
{
if(word.length() == 0)
{
return reversed;
}
else
{
string temp;
reversed = word.substr(0,1) + reversed;
temp = word.substr(1);
return Reverse(temp, reversed);
}
}
现在,我得到了正确的返回值。非常感谢你。