旋转字符串
来源:互联网 发布:windows phone8.1刷机 编辑:程序博客网 时间:2024/05/29 16:09
旋转字符串
【题目】
给定一个字符类型的数组 chas 和一个整数 size,请把大小为 size 的左半区整 体移到右半区,右半区整体移到左边。
【举例】
如果把 chas 看作字符串为"ABCDE",size=3,调整成"DEABC"。
【要求】
【题目】
给定一个字符类型的数组 chas 和一个整数 size,请把大小为 size 的左半区整 体移到右半区,右半区整体移到左边。
【举例】
如果把 chas 看作字符串为"ABCDE",size=3,调整成"DEABC"。
【要求】
如果 chas 长度为 N,两道题都要求时间复杂度为 O(N),额外空间复杂度为 O(1)。
代码:
/*将字符串分成左右两部分* 左边旋转 右边旋转 整体旋转*/public static void revere(char[] str,int size){ int left = 0; int right = size-1; while(left<right){ str[left]= (char) ((int)str[left]^(int)str[right]);//字符交换 str[right]= (char) ((int)str[left]^(int)str[right]); str[left]= (char) ((int)str[left]^(int)str[right]); left++; right--; } left = size; right = str.length-1; while(left<right){ str[left]= (char) ((int)str[left]^(int)str[right]); str[right]= (char) ((int)str[left]^(int)str[right]); str[left]= (char) ((int)str[left]^(int)str[right]); left++; right--; } left = 0; right = str.length-1; while(left<right){ str[left]= (char) ((int)str[left]^(int)str[right]); str[right]= (char) ((int)str[left]^(int)str[right]); str[left]= (char) ((int)str[left]^(int)str[right]); left++; right--; } for (char c:str) { System.out.print(c); }}
0 0
- 旋转字符串
- 字符串旋转
- 字符串旋转
- 旋转字符串
- 旋转字符串
- 旋转字符串
- 旋转字符串
- 旋转字符串
- 字符串旋转
- 旋转字符串
- 旋转字符串
- 旋转字符串
- 字符串旋转
- 旋转字符串
- 旋转字符串
- 旋转字符串
- 旋转字符串
- 字符串旋转
- java继承覆盖总结
- HTML_06_css_定位_布局思想_优先级
- jQuery对象和DOM对象相互转换
- Android View的Measure
- 守护进程
- 旋转字符串
- static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
- HTML_07_css_HTML5_and_Css3
- HTTPS详解
- SQLBindParameter 函数的参数解析及使用方法
- Linux中线程与CPU核的绑定
- 关于CPU内部的各种寄存器
- Linux中用守护进程检测程序运行
- Linux之------进程间通信