剑指offer系列之43:左旋转字符串
2016-04-12 21:10
357 查看
题目描述:字符串的左旋转操作是吧字符串前面的若干个字符转移到字符串的尾部。要求输入字符串和要左旋转的位数,输出旋转后的字符串。(知识迁移能力,字符串的处理能力)
思路:比如输入字符串“abcdefg”和2,要求把字符串前面两位移到后面变为“cdefgab”,这时可以把前面两个字符ab看成一部分,cdefg看成一部分,分别旋转这两部分,得到“bagfedc”,然后再旋转整个字符串即可。
思路:比如输入字符串“abcdefg”和2,要求把字符串前面两位移到后面变为“cdefgab”,这时可以把前面两个字符ab看成一部分,cdefg看成一部分,分别旋转这两部分,得到“bagfedc”,然后再旋转整个字符串即可。
public class Solution { public String LeftRotateString(String str,int n) { String result = ""; if(n < 0 || str == null || str.length() == 0 || n > str.length()){ return result; } char[] array = str.toCharArray(); int length = array.length; int firstStart = 0; int firstEnd = firstStart + n - 1; int secondStart = firstStart + n; int secondEnd = length - 1; reverse(array,firstStart,firstEnd); reverse(array,secondStart,secondEnd); reverse(array,firstStart,secondEnd); result = String.valueOf(array); return result; } public void reverse(char[] array,int begin,int end){ if(array == null || array.length == 0){ return; } while(begin < end){ char temp = array[begin]; array[begin] = array[end]; array[end] = temp; begin++; end--; } } }
相关文章推荐
- 前端 html 1
- JavaScript 正则表达式
- 剑指offer系列之42:翻转单词序列
- angular2 Displaying
- StringBuffer
- JavaScript 引用类型
- jQuery多元素选择器操作
- 阿里2016实习offer五面经验与总结(转)
- windows10 无GPU配置Caffe
- windows10 无GPU配置Caffe
- windows10 无GPU配置Caffe
- windows10 无GPU配置Caffe
- windows10 无GPU配置Caffe
- windows10 无GPU配置Caffe
- windows10 无GPU配置Caffe
- windows10 无GPU配置Caffe
- windows10 无GPU配置Caffe
- windows10 无GPU配置Caffe
- windows10 无GPU配置Caffe
- HTML5语义化实现方式(兼容)