剑指 Offer 58 - II. 左旋转字符串
package leetcode; public class offer_58 { //左移n个,先翻转左边n个字符,再翻转剩余的,最后将整个字符串进行翻转 //右移n个,先翻转右边n个字符,再翻转剩余的,最后将整个字符串进行翻转 public String reverseLeftWords(String s, int n) { if(s.equals("")) {return s;} String s1=reverse(s, 0, n); String s2=reverse(s, n, s.length()); String str=reverse(s1+s2, 0, s.length()); System.out.println(str); return str; } public String reverse(String s,int begin,int end) { StringBuilder sb=new StringBuilder(); for(int i=end-1;i>=begin;i--) { sb.append(s.charAt(i)); } return sb.toString(); } public static void main(String[] args) { // TODO Auto-generated method stub offer_58 offer_58=new offer_58(); offer_58.reverseLeftWords("abcdef", 2); } }
偷懒方法
class Solution { public String reverseLeftWords(String s, int n) { if(s.equals("")) {return s;} String s1=s.substring(0,n); String s2=s.substring(n,s.length()); return s2+s1; } }