将N个字符的数组,循环右移K位。时间复杂度O(N)。
来源:互联网 发布:retrofit 传json 编辑:程序博客网 时间:2024/05/01 08:32
将N个字符的数组,循环右移K位。时间复杂度O(N)
eg:str[]=”abcde123”,右移3位
1、旋转abcde->edcba
2、旋转123->321
3、整体旋转edcba321->123abcde
代码块实现
void Reverse(char* str, int left,int right){ while (left < right) { std::swap(str[left], str[right]); ++left; --right; }}//这里是循环右移K位,循环左移K位是同样的道理 void RightMoveK(char* str,int size,int k){ assert(str); k = k % size;//(这一步非常关键)因为右移size长度又回到了原来的字符串 //翻转前K个字符 Reverse(str, 0, size - k - 1); //翻转后面的剩余字符 Reverse(str, size - k, size - 1); //在进行整体翻转 Reverse(str, 0, size - 1);}void RightMoveTest(){ char str[] = "abcde123"; int len = strlen(str); cout << "原str: "<<str << endl; RightMoveK(str, len, 6); cout << "右移K位的str: " << str << endl;}
结果展示
阅读全文
0 0
- 将N个字符的数组,循环右移K位。时间复杂度O(N)
- 将N个字符的数组,循环右移K位。时间复杂度O(N)
- 将N个字符的数组,循环右移K位。时间复杂度O(N)
- 将N个字符的数组,循环右移K位。时间复杂度O(N)。
- 把一个含有N个元素的数组循环右移K位, 要求时间复杂度为O(N)
- 【数学】数组循环右移k位,要求时间复杂度为O(n)
- 将N个字符的数组,循环右移K位。
- 试设计一个算法,将数组A(0..n-1)中的元素循环右移k位,并要求空间复杂度为O(1),时间复杂度为O(n)。
- 每日一题——字符串循环右移K位,时间复杂度O(N)
- 在时间复杂度O(n)内,实现将数组A[n]中所有元素左循环移n位
- 将数组 a[n]所有的元素循环右移k位
- 把一个含有N个元素的数组循环右移K位
- 循环右移,要求时间复杂度为O(n)且尽可能的少使用辅助空间
- 将数组A中的元素A[0..n-1]循环右移k位
- 将一个具有n个元素的数组向左循环移动i个位置,使用O(n)复杂度
- 字符串移动k位的时间复杂度o(n)空间复杂度o(1)的解法
- 已知数组A[1...n] ,确定第K小元素 算法的时间复杂度O(n)
- 将数组循环右移k位
- has text relocations
- JAVA 中 Redis与ehcache对比与使用
- java.util.ArrayDeque源码解析
- 把冷话加热了再说
- UVA 562 Dividing coins(01背包)
- 将N个字符的数组,循环右移K位。时间复杂度O(N)。
- Tunnel Warfare (区间合并)
- lambda表达式
- pat:L1-031. 到底是不是太胖了
- AJAX(XMLHttpRequest.status)状态码
- 新人报道
- 字节流与字符流
- AngualrJS(四)input元素的ng-model属性
- 关于androidstudio突然没有提示的问题