【剑指offer】左旋转字符串
题目链接:左旋转字符串
题意:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
题解:判断一下我们需要移动到哪个位置上,截取成两段,后前组合即可。
代码:
1 class Solution { 2 public: 3 string LeftRotateString(string str, int n) { 4 int len = str.size(); 5 if(len <= 0 ) return str; 6 int flag = n%len; 7 if(flag == 0) return str; 8 string front = str.substr(0,flag); 9 string last = str.substr(flag); 10 last = last+front; 11 return last; 12 } 13 };