定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。
要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。
void reverseStr(char*& input,int k) { if(NULL == input||k<=0) return; int k=k%strlen(input); char ch; for(int i = 0;i<strlen(input)/2;i++) { ch = *(input+i); *(input+i) = *(input+len-1-i); *(input+len-1-i) = ch; } for(i = 0;i<strlen(input)-k;i++) { ch = *(input+i); *(input+i) = *(input+strlen(input)-k-1-i); *(input+strlen(input)-k-1-i) = ch; } for(i = strlen(input)-k;i<strlen(input);i++) { ch = *(input+i); *(input+i) = *(input+len-1-i); *(input+len-1-i) = ch; } }
左旋转字符串(字符串)
最新推荐文章于 2020-03-07 09:40:31 发布