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
    
    	}
    
    }
    

      

  • 相关阅读:
    二维hash(Uva 12886)
    C#中的线程(一)入门
    全国各地所有高校名单数据库 全国所有高校排名
    协议与代理
    表的约束条件
    na 斐波那契数列f(f(n))
    gcd题目
    Neighbor 隔壁
    hadoop
    Mybatis中实现mysql分页写法!!注意
  • 原文地址:https://www.cnblogs.com/kexiblog/p/11188779.html
Copyright © 2011-2022 走看看