旋轉字符串(左旋)

題目要求:
彙編語言中有一種移位指令叫做循環左移(ROL),現在有個簡單的任務,就是用字符串模擬這個指令的運算結果。對於一個給定的字符序列S,請你把其循環左移K位後的序列輸出。例如,字符序列S=”abcXYZdef”,要求輸出循環左移3位後的結果,即“XYZdefabc”。
思路:
解法一:開闢了新的空間。

class Solution {
public:
    string LeftRotateString(string str, int n) {
        解法一:開闢了新的空間。
        string result;
        if(n < 0 || str.size() == 0)
        {
            return result;
        }
        size_t step = n % str.size();
        for(size_t i = step; i < str.size(); i++)
        {
            result.push_back(str[i]);
        }
        for(size_t j = 0; j < step; j++)
        {
            result.push_back(str[j]);
        }
        return result;
    }
};

解法二:
分成兩部分,逆置左面的,逆置右面的,整體逆置。

  1. abc defg
  2. cba gfed
  3. defg abc
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章