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

      

  • 相关阅读:
    将Hive统计分析结果导入到MySQL数据库表中(一)——Sqoop导入方式
    hive基本结构与数据存储
    使用sqoop从Oracle或mysql抽取数据到HDFS遇到的报错及解决
    Sqoop导入关系数据库到Hive
    SVN版本回退
    SVN--分支、合并
    关于SVN版本分支合并的知识
    在spring环境下集成ActiveMQ
    ActiveMQ
    Oracle中sequence的使用方法
  • 原文地址:https://www.cnblogs.com/kexiblog/p/11188779.html
Copyright © 2011-2022 走看看