题目描述
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。
请定义一个函数实现字符串左旋转操作的功能。
比如输入字符串”abcdefg”和数字 2,该函数将返回左旋转 2 位得到的结果”cdefgab”。
注意:
数据保证 n 小于等于输入字符串的长度。
样例
样例
输入:"abcdefg" , n=2
输出:"cdefgab"
算法1
(模拟做法) $O(n^2)$
模拟这个字符串就好了,每次选头部,拿出来一个,然后加到尾巴去,每次都这样做,直到n为0
1.拿出头部 char t=name[0];
2.删除头部 变为子串 substr(1,name.size());
3.加尾巴 name=name+t;
时间复杂度
参考文献
C++ 代码
while(n--)
{
char t=str[0];
str=str.substr(1,str.size());
str=str+t;
}
return str;
算法2
(stl) $O(n^2)$
reverse具体看y
时间复杂度
参考文献
C++ 代码
blablabla