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

劍指offer之左旋轉字串

1.題目描述

組合語言中有一種移位指令叫做迴圈左移(ROL),現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於一個給定的字元序列S,請你把其迴圈左移K位後的序列輸出。例如,字元序列S=”abcXYZdef”,要求輸出迴圈左移3位後的結果,即“XYZdefabc”。是不是很簡單?OK,搞定它!

2.問題分析

題目簡單,但是我們需要注意:第一,n如果n的長度大於字串的長度,我們需要求餘,即n = n % str.size();之後就是拼接字串了,如果左右3位,我們需要把字串分成兩個部分:[3,str.size() - 1],[0,2]。

3.原始碼

string LeftRotateString
(string str, int n) { int size = str.size(); if(size == 0) return ""; n = n % size; return str.substr(n) + str.substr(0,n); }