字符串面试题(一)— 字符串逆序

对于一个字符串,请设计一个算法,将字符串的长度为len的前缀平移到字符串的最后。

例子:“ABCDE”,5,3
返回:”DEABC”

示例代码:

#include<iostream>
#include<string>
#include<vector>
using namespace std;
class Translation {
public:
    string stringTranslation(string A, int n, int len) 
    {
        if(len>n)
            exit(-1);
        reverseWord(A,0,len-1);
        reverseWord(A,len,n-1);
        reverseWord(A,0,n-1);
        return A;
    }
    void reverseWord(string &A,int low,int high)
    //局部逆序函数
    {
        if(low>=high)
            return;
        char temp;
        while(low<high)
        {
            temp=A[low];
            A[low]=A[high];
            A[high]=temp;
            low++;
            high--;
        }
    }
};
int main()
{
    string a("ABCDE");
    Translation A;
    string res=A.stringTranslation(a,5,3);
    cout<<res;
    return 0;
}
    原文作者:qinjianhuang
    原文地址: https://blog.csdn.net/sinat_35512245/article/details/54783416
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞