剑指offer面试题42_2 左旋转字符串
来源:互联网 发布:网络推广产品代理 编辑:程序博客网 时间:2024/06/06 08:29
主要思想:
将字符串分为两部分,将前n个字符看成第一部分,后面的所有字符看成第二部分,先分别翻转这两部分,最后在翻转整个字符串即可以实现左旋转字符串。
public class Solution {public String LeftRotateString(String str, int n) {//还需考虑对n是否大于字符串的长度if (str == null || str.length() <= 0 || n < 0) {return "";}//防止内存访问越界if (n > str.length()) {return str;}int length = str.length();//包括第0位,但不包括第n位String substring1 = str.substring(0, n);String subString2 = str.substring(n, length);char[] charArray1 = substring1.toCharArray();char[] charArray2 = subString2.toCharArray();//对charArray1进行翻转Reverse(charArray1, 0, charArray1.length - 1);//对charArray2进行翻转Reverse(charArray2, 0, charArray2.length - 1);//将两个字符数组进行拼接,在整体翻转char[] appendCharArray = new char[charArray1.length + charArray2.length];for (int i = 0; i < charArray1.length; i++) {appendCharArray[i] = charArray1[i];}for (int i = charArray1.length; i < appendCharArray.length; i++) {appendCharArray[i] = charArray2[i - charArray1.length];}Reverse(appendCharArray, 0, appendCharArray.length - 1);String s = String.valueOf(appendCharArray);return s;}public char[] Reverse(char[] charArray, int begin, int end) {if (charArray == null) {return null;}while (begin < end) {char temp = charArray[begin];charArray[begin] = charArray[end];charArray[end] = temp;begin++;end--;}return charArray;}
阅读全文
0 0
- 剑指offer面试题42_2 左旋转字符串
- 【剑指offer】面试题42:左旋转字符串
- 剑指Offer----面试题42(2):左旋转字符串
- 【剑指Offer】面试题42:左旋转字符串
- 剑指offer:面试题42——左旋转字符串
- 剑指offer面试题之左旋转字符串
- 【剑指offer】面试题58(2):左旋转字符串
- [剑指offer][面试题42]翻转单词顺序 VS 左旋转字符串
- [剑指offer]面试题42:翻转单词顺序,左旋转字符串
- 剑指offer 面试题42 翻转单词顺序 | 左旋转字符串
- 剑指offer 面试题42—翻转单词顺序VS左旋转字符串
- 【剑指Offer学习】【面试题42:翻转单词顺序vs左旋转字符串】
- 剑指Offer面试题42(Java版):反转单词顺序VS左旋转字符串
- 剑指offer-面试题42:翻转单词顺序VS左旋转字符串
- 剑指offer之面试题42翻转单词顺序VS左旋转字符串
- 剑指Offer面试题42:翻转单词顺序;左旋转字符串 Java实现
- 剑指offer--面试题42:翻转单词顺序列 vs 左旋转字符串
- 剑指offer——面试题42:翻转单词顺序VS左旋转字符串
- JAVA内存模型及垃圾回收自我总结
- RocketMQ原理解析-broker 3.load&recover
- (三)DCF机制详解_下篇
- [Leetcode] 291. Word Pattern II 解题报告
- java filter过滤器的配置Demo
- 剑指offer面试题42_2 左旋转字符串
- (wdlinux)安装Redis扩展
- 几款按钮样式
- C/C++
- js:jquery插件jquery.form.js options简介
- 解决android读取中文txt的乱码(自动判断文档类型并转码
- RocketMQ原理解析-broker 4.HA & master slave
- HDU -- 2121 【无定根的最小树形图】
- 算法设计与分析笔记——合并排序