虽然题很简单,还是莫名陷入很多坑。
方法一:我的无脑方法 转为字符数组 挪挪挪
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);
}
}
京公网安备 11010502036488号