【追求进步】左旋转字符串
2016-04-13 11:33
381 查看
题目描述
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!在线编程:
import java.util.*; public class Solution { public String LeftRotateString(String str,int n) { char[] data=str.toCharArray(); if(data==null||n<0||n>data.length){ return String.valueOf(data); } //data的长度是abcdefg是7,若n=2; reverse(data,0,data.length-1);//先将0-6全部字符串反转一遍 reverse(data,0,data.length-n-1);//将0-4的字符串反转一遍 reverse(data,data.length-n,data.length-1);//将5-6的反转一遍也就是复原了,没有变化的部分 // String s1 = new String(c); // String s2 = String.valueOf(c); return new String(data); } public void reverse(char[] data,int start,int end){ if(data==null||data.length<1||start<0||end>data.length||start>end){ return ; } while(start<end){ char tmp=data[start]; data[start]=data[end]; data[end]=tmp; start++; end--; } } }
相关文章推荐
- 使用Spring MVC统一异常处理实战
- Android WebView缓存机制详解
- 【cut】剪断文件
- 【awk】文本处理
- [LeetCode] Word Frequency 单词频率
- 深入理解 Java中的 流 (Stream)
- 弹出popwindow 背景变暗
- Hadoop 基本操作
- 递归和非递归方法实现斐波那契数列
- 如何实现掩码位图的透明显示
- 在ubuntu上安装并运行NATS Server -- gnastd:未找到命令
- 如何计算IOPS ?
- Redis keys 基本命令
- Android开发之获取SD卡及手机ROM容量的方法
- 【View】之【SimpleWaveView】可多色可刷新的加速球、进度球【demo】
- 各种队列的执行效果
- dispatch_once
- 最简单的视音频播放示例6:OpenGL播放YUV420P(通过Texture,使用Shader)
- 总结下最近收集的一些比较好的网址
- 0007《SQL必知必会》笔记03-汇总与分组数据