刷题1 旋转字符串1
2018-01-23 14:16
197 查看
水博客来记录刷题
/********************************************************* 功能: 旋转字符串 描述: 给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部, 如把字符串“abcdef”前面的2个字符'a'和'b'移动到字符串的尾部, 使得原字符串变成字符串“cdefab”。请写一个函数完成此功能, 要求对长度为n的字符串操作的时间复杂度为 O(n), 空间复杂度为 O(1)。 **********************************************************/ #include <stdlib.h> void ReverseString(char* s, int from, int to) { while (from < to) { char t = s[from]; s[from++] = s[to]; s[to--] = t; } } void LeftRotateString(char* s, int n, int m) { m %= n; ReverseString(s, 0, m - 1); ReverseString(s, m, n - 1); ReverseString(s, 0, n - 1); } int main() { char string[] = "hellokitty"; LeftRotateString(&string, 10, 5); printf(string); getchar(); return 0; }
相关文章推荐
- 剑指offer 42. 翻转单词顺序VS左旋转字符串
- 判断两个字符串是否互为旋转词
- 左旋转字符串
- 纪念逝去的岁月——C/C++字符串旋转
- 剑指offer-面试题42-翻转单词顺序VS左旋转字符串
- 生成随机字符串验证码字符串旋转变色
- java实现字符串左旋转
- 字符串的旋转
- 字符串左右旋转问题
- LintCode:旋转字符串
- 【剑指offer】左旋转字符串
- 面试算法(四十二)翻转单词顺序VS左旋转字符串
- 左旋转字符串
- [LintCode]8.旋转字符串
- 【求职面试】左旋转字符串(C#版)
- LintCode 旋转字符串
- 翻转单词顺序vs左旋转字符串
- 编程珠玑--杂技算法--字符串、数组的旋转
- 翻转单词顺序与左旋转字符串
- 剑指offer—左旋转字符串