题目出处:牛客网
对于一个字符串,请设计一个算法,将字符串的长度为len的前缀平移到字符串的最后。

给定一个字符串A和它的长度,同时给定len,请返回平移后的字符串。

测试样例:
"ABCDE",5,3
返回:"DEABC"


python实现

代码

def forwardmove(alist):
    #平移一个单位
    first = alist[0]
    for i in xrange(len(alist)-1):
        alist[i] = alist[i+1]
    alist[-1] = first

class Translation:
    def stringTranslation(self, A, n, len):
        # write code here
        alist = list(A)
        for i in xrange(len):
            forwardmove(alist)
        return ''.join(alist)


C++实现

代码

class Translation {
public:
    string stringTranslation(string A, int n, int len) {
        // write code here
        string::iterator it;
        it = A.begin() + len;
        reverse(A.begin(),it);
        reverse(it,A.end());
        reverse(A.begin(),A.end());
        return A;
    }
};


2018-9-3 晚