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

      

  • 相关阅读:
    AI进阶之路
    python--数学运算函数
    QT之QChar
    字符串类QString
    Qt5多线程
    matplotlib动画
    matplotlib的安装和允许中文及几种字体
    python---wav音频
    python---多线程
    python--Excel模块xlwings
  • 原文地址:https://www.cnblogs.com/kexiblog/p/11188779.html
Copyright © 2020-2023  润新知