题目:给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)。
样例
对于字符串 "abcdefg"
.
offset=0 => "abcdefg"
offset=1 => "gabcdef"
offset=2 => "fgabcde"
offset=3 => "efgabcd"
解:先对offset处理,看是否超出字符串长度(offset=offset%len)。每次循环把最后一个字符取出来,然后把前面所有的字符往后挪一个位置,再将刚刚取出的那一个字符放回头部,循环处理后的offset次。
class Solution { public: /* * @param str: An array of char * @param offset: An integer * @return: nothing */ void rotateString(string &str, int offset) { // write your code here int temp; int len=str.size(); if(len==0) return; offset=offset%len;//offset处理 for(int i=0;i<offset;i++) { temp=str[len-1];//取出最后一个字符 for(int j=len-1;j>=1;j--) { str[j]=str[j-1];//前面所有字符往后挪一位 } str[0]=temp;//放回头部 } } };