zoukankan      html  css  js  c++  java
  • N43_左旋转字符串

    题目描述

    汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
    package new_offer;
    /**
     * 汇编语言中有一种移位指令叫做循环左移(ROL),
     * 现在有个简单的任务,就是用字符串模拟这个指令的运算结果。
     * 对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。
     * 例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,
     * 即“XYZdefabc”。是不是很简单?OK,搞定它!
     * @author Sonya
     *照剑指offer书上的方法,两次翻转字符串。
     */
    public class N43_LeftRotateString {
    	
    	public String LeftRotateString(String str,int n) {
    			char[] chars = str.toCharArray();        
    	        if(chars.length < n) return "";
    			reverse(chars, 0, n-1);
    			reverse(chars, n, chars.length-1);
    			reverse(chars, 0, chars.length-1);
    			StringBuilder sb = new StringBuilder(chars.length);
    			for(char c:chars){
    			     sb.append(c);
    			     }
    		   return sb.toString();
    		
    	        
    	    }
        public void reverse(char []ch,int low,int high) {
        	char temp;
        	while(high>low) {
        		temp=ch[low];
        		ch[low]=ch[high];
        		ch[high]=temp;
        		high--;
        		low++;
        	}
        }
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    	}
    
    }
    

      

  • 相关阅读:
    使用jQuery简单实现产品展示的图片左右滚动功能
    分布式缓存 memcache学习
    js打印html中的内容
    lucene 搜索引擎使用案例
    jQuery 知识点积累
    Oracle 11g 卸载
    #region 自适应屏幕分辨率
    C#泛类型链表的实现
    C#可以获取Excel文件中Sheet的名字
    关于 List<T>
  • 原文地址:https://www.cnblogs.com/kexiblog/p/11188779.html
Copyright © 2011-2022 走看看