题解 | #翻转字符串(2)#
翻转字符串(2)
http://www.nowcoder.com/practice/79c562297c0e4ff0952ef39ecde1bd6b
import java.util.Scanner; public class Main { public static void reverse(char[] chas, int start, int end) { char tmp = 0; while (start < end) { tmp = chas[start]; chas[start] = chas[end]; chas[end] = tmp; start++; end--; } } /*补充 字符数组chas和一个整数size,把大小为size的坐班去整体移动到右半区 ABCDE size=3 DEABC 1.[0,size-1]逆序 2.[size,len-1]逆序 3.整体逆序 ABCDE------CBADE-----CBAED-----DEABC * */ public static void rotate1(char[] chars, int size) { if (chars == null || size < 0 || size > chars.length || chars.length == 0) { return; } reverse(chars, 0, size - 1); reverse(chars, size, chars.length - 1); reverse(chars, 0, chars.length - 1); } public static void main(String[] args) { Scanner in = new Scanner(System.in); int size=Integer.parseInt(in.nextLine()); char[] chars1=in.nextLine().toCharArray(); rotate1(chars1,size); System.out.println(chars1); } }