剑指offer-43.左旋转字符串

来源:互联网 发布:淘宝旺旺自动回复链接 编辑:程序博客网 时间:2024/06/06 00:15

题目:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!


思路:首先取得字符串的长度,然后对串进行相加,得到新串(新串由原来串加原来串)再利用子串函数从n位开始去,去长度为原来串的长度即得到结果


class Solution {public:    string LeftRotateString(string str, int n)     {        int len = str.size();        if (len == 0)            return "";        n = n % len;        str += str; //形成一个新串        return str.substr(n,len);//取新的子串返回,abcXYZdefabcXYZdef ,新的子串从n位开始去,长度为len,结果正好为XYZdefabc    }};


0 0
原创粉丝点击