字符串的左旋转操作是把字符串前面的若干个字符移动到字符串尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到结果"cdefgab"。
示例一:
输入:s="abcdefg",k=2
输出:"cdefgab"
示例二:
输入:"lrloseumgh",k=6
输出:"umghlrlose"
解题思路
比较直接,先获取长度,再通过取模的方式定位到第n个字符进行赋值,注意别忘了结束符。
char* reverseLeftWords(char* s, int k){
int i;
int len = strlen (s);
if (s==NULL||k==0||len==k)
{
return s;
}
char*ret=(char *)malloc(sizeof(char)*len+1);
for (i=0;i<len;i++)
{
ret[i]=s[(i+k)%len];
}
ret[i]='\0';
return ret;
}
时间复杂度:O(n)
空间复杂度:O(n)