这是我的代码包括一个递归代码,我想将其转换为一个迭代代码,但我希望它通过递归的方式完全反转字符串。 我的意思是除以
#include <iostream>
#include <string.h>
using namespace std;
string reverse (string temp, int length)
{
if (length == 1)
{
return temp;
}
else
{
int t = (temp.length() + 1) / 2;
return
reverse(
temp.substr(t, temp.length() - 1),
t
) +
reverse(
temp.substr(0, t),
t
);
}
}
int main() {
string s;
cin>>s;
string rev = reverse(s, s.length());
cout <<"\n"<<rev;
cin>>s;
return 0;
}
答案 0 :(得分:1)
通过non-recursive
将每个string
位置交换到一半,可以完成i
的{{1}}版本的代码转换,如下所示:
len - i - 1