IT公司100題-26-左旋轉字符串

問題描述:java

給定字符串和左旋的字符數,寫程序實現字符串的左旋操做。例如對於字符串」12345678″, 左旋轉4個字符後,變成」56781234″。要求時間複雜度爲O(n),空間複雜度O(1)。app

 

問題分析:ui

假設字符串表示爲XY,X表示須要左旋的部分,左旋後字符串表示爲YX。spa

根據公式:1code

代碼實現:字符串

package oschina.IT100;
/**
 * @project: oschina
 * @filename: IT26.java
 * @version: 0.10
 * @author: JM Han
 * @date: 5:23 PM 1/5/2016
 * @comment: Rotate characters of a String
 * @result: After rotate 3 of 12345678 is: 45678123
 */

public class IT26 {
   public static String rotateString(String s, int n){
      StringBuilder sxb = new StringBuilder(s.substring(0, n));
      StringBuilder syb = new StringBuilder(s.substring(n));
      StringBuilder srb = sxb.reverse().append(syb.reverse());
      return srb.reverse().toString();
   }
   public static void main(String[] args) {
      String src = "12345678"; int n = 3;
      System.out.println("After rotate " + n + "character of " + src + " is: " + rotateString(src, n));
   }
}
相關文章
相關標籤/搜索