zoukankan      html  css  js  c++  java
  • Solution 26: 左旋转字符串

    问题描述

    定义字符串的左旋转操作:将字符串前面的若干个字符移动到字符串的尾部。

    例如,字符串“abcdef”左旋转2位得到“cdefab”。要求实现的算法时间复杂度为O(n),常数级空间复杂度。

    解决思路

    整体翻转+部分翻转

    程序

    public class LeftRotateString {
    	public void leftRotate(char[] c, int k) {
    		if (c == null || c.length == 0) {
    			return;
    		}
    
    		reverse(c, 0, c.length - 1);
    		reverse(c, 0, c.length - k - 1);
    		reverse(c, c.length - k, c.length - 1);
    	}
    
    	private void reverse(char[] c, int i, int j) {
    		while (i < j) {
    			char tmp = c[i];
    			c[i] = c[j];
    			c[j] = tmp;
    			++i;
    			--j;
    		}
    	}
    }
    

      

  • 相关阅读:
    css3 3d 转换
    css3 动画序列
    css3 动画
    2d 转换之缩放
    2d 转换中心点
    css3 书写 动画三角形
    2d 旋转
    2D转换
    伪元素 字体图标
    风陵01
  • 原文地址:https://www.cnblogs.com/harrygogo/p/4634893.html
Copyright © 2011-2022 走看看