描述
给一个字符类型的数组chas和一个整数size,请把大小为size的左半区整体右移到右半区,右半区整体移动到左边。
输入描述:
输入两行,第一行一个整数,代表size,第二行一个字符串,代表chas
输出描述:
输出一行字符串,代表翻转后的字符串。
示例1
输入:
3
abcdefg
输出:
defgabc
备注:
时间复杂度
O(n)
O(n),额外空间复杂度O(1)。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int k = sc.nextInt();
String str = sc.next();
String ret = reserveK(str,k);
System.out.println(ret);
}
public static String reserveK(String str,int k){
if(str == null|| k<0 || k>str.length()){
return null;
}
str = reverse(str,0,k-1);
str = reverse(str,k,str.length()-1);
str = reverse(str,0,str.length()-1);
return str;
}
public static String reverse(String str,int left,int right){
char[] ans = str.toCharArray();
while(left<right){
char tmp = ans[left];
ans[left]=ans[right];
ans[right]=tmp;
left++;
right--;
}
return new String(ans);
}
}