在C ++中将递归代码转换为将字符串反向转换为迭代代码

时间:2018-12-17 17:56:40

标签: arrays string recursion dynamic iteration

example ... I want the iterative  code to work this way not the ordinary way  这是我的代码包括一个递归代码,我想将其转换为一个迭代代码,但我希望它通过递归的方式完全反转字符串。 我的意思是除以

   #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;
}

1 个答案:

答案 0 :(得分:1)

通过non-recursive将每个string位置交换到一半,可以完成i的{​​{1}}版本的代码转换,如下所示:

len - i - 1