虽然题很简单,还是莫名陷入很多坑。
方法一:我的无脑方法 转为字符数组 挪挪挪
import java.util.*; public class Solution { public String LeftRotateString(String str,int n) { if(str==null||str.length()==0) return ""; if(n==0) return str; if(n>=str.length()) n=n%str.length(); char[] cha=str.toCharArray(); char[] tep=new char[n]; //拷贝前n个 for (int i=0;i<n;i++) tep[i]=cha[i]; //n后面往前挪 for(int i=0;i<cha.length-n;i++) cha[i]=cha[i+n]; int i=cha.length-n; //前n个挪回来 for(int j=0;j<n;j++) cha[i++]=tep[j]; return String.valueOf(cha); } }
方法二:用子字符拼一下就好了
public class Solution { public String LeftRotateString(String str,int n) { if(str==null||str.length()==0) return ""; if(n==0) return str; if(n>=str.length()) n=n%str.length(); return str.substring(n)+str.substring(0,n); } }