左旋数组;
将一个数组从左开始第几位之前的进行旋转
如:将"abcdef"第2位之前(a为0号位置)进行旋转—变为"cdefab"
第一种方法:
public class TestDemo4 {
public static void leftRotateString(String str,int n){
char[] arr = str.toCharArray();
char[] arr1 = new char[arr.length];
int i =0;
for(int j= n ;j<arr.length;j++ ){
arr1[i]=arr[j];
i++;
}
for(int j = 0;j<n;j++){
arr1[i]= arr[j];
i++;
}
String str1= new String (arr1);
System.out.println(str1);
}
public static void main(String[] args) {
leftRotateString("abcdef",2);
}
}
第二种方法:
public static void leftRotateString(String str,int n){
int index1= 0;
int index2= n-1;
int index3= n;
int index4=str.length()-1;
str = reverse(str,index1,index2);
str = reverse(str,index3,index4);
str = reverse(str,index1,index4);
System.out.println(str);
}
private static String reverse(String str, int left, int right) {
char[] chars = str.toCharArray();
while(left<right){
char tmp = chars[left];
chars[left]= chars[right];
chars[right]= tmp;
left++;
right--;
}
return String.copyValueOf(chars);
}
public static void main(String[] args) {
leftRotateString("abcdef",2);
}
} ```