左旋字符串

左旋字符串

题目描述

字符串的旋转操作是把字符串前面的若干字符移到字符串的尾部. 定义一个函数实现字符串左旋转操作的功能. 不如, 输入字符串"abcdefg"和数字2, 该函数将返回左旋转两位等到的结果"cdefgab"

利用string的构造函数, 左闭右开原则, 偷懒了, 罪过罪过...

class Solution {
public:
    string LeftRotateString(string str, int n) {
        if (str.empty()) {
            return str;
        }
        
        n %= str.length();
        string str1(str.begin() + n, str.end());
        string str2(str.begin(), str.begin() + n);
        return str1+str2;
    }
};

一个一个的移位, 没什么好说的

class Solution {
public:
    string LeftRotateString(string str, int n) {
        if (0 == str.size()) 
            return str;
        int end = str.length() - 1;
        n = n % (end + 1);
        //n %= str.length();
        for (int i = 0; i < n; i++) {
            char temp = str[0];
            for (int j = 0; j < str.length() - 1; j++) {
                str[j] = str[j + 1];
            }
            str[end] = temp;
        }
        return str;
    }
};
posted @ 2019-03-13 20:02  张飘扬  阅读(203)  评论(0编辑  收藏  举报