版权声明:中华人民共和国持有版权 https://blog.csdn.net/Fly_Fly_Zhang/article/details/85063049
题目:左旋字符串
思路:利用substring方法;两个str相加,从n位置开始,从n+len结束; 常规解法是,将字符串反转,然后0-n反转一次,n-len 反转一次
substring
public class Solution {
public String LeftRotateString(String str,int n) {
if(str.length()==0||str==null){
return "";
}
int len=str.length();
n=n%len;
str+=str;
return str.substring(n,len+n);
}
}
反转解法
public class Solution {
public String reverse (String str,int start,int end){
char [] ch=str.toCharArray();
while(start<end){
char tmp=ch[start];
ch[start]=ch[end];
ch[end]=tmp;
start++;
end--;
}
return new String(ch);
}
public String LeftRotateString(String str,int n) {
if(str.length()==0||str==null){
return "";
}
int len=str.length();
n=n%len;
str=reverse(str,0,n-1);
str=reverse(str,n,len-1);
str=reverse(str,0,len-1);
return str;
}
}