1. 程式人生 > >[劍指offer]左旋轉字串

[劍指offer]左旋轉字串

分析:以第n個為間隔,左邊翻轉一次,右邊翻轉一次,整個字串再翻轉一次。

程式碼:

class Solution {
public:
    void reverse(string &s,int start,int end){
        int i=start;
        int j=end;
        char temp;
        while(i<j){
            temp=s[i];
            s[i]=s[j];
            s[j]=temp;
            i++;
            j--;
        }
    }
    string LeftRotateString(string str, int n) {
        int len=str.size();
        if(len==0||n==0) return str;
        string &temp=str;
        reverse(temp,0,n-1);
        reverse(temp,n,len-1);
        reverse(temp,0,len-1);
        return temp;
    }
};

當然可以用python很簡單的實現,不過這麼回答的話就沒什麼意思了。
# -*- coding:utf-8 -*-
class Solution:
    def LeftRotateString(self, s, n):
        # write code here
        return s[n:]+s[:n]