Reverse String II
给一个字符串和一个值k, 反转字符串, 规则是 每2k个, 反转前k个. 不够k个, 能反转多少反转多少. 不够2k个, 不转.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
class Solution { public String reverseStr(String s, int k) { char[] ary = s.toCharArray(); for(int i = 0 ; i < ary.length; i += 2*k) { swap(ary, i, Math.min(i + k - 1, ary.length-1)); } return String.valueOf(ary); } private void swap(char[] ary, int i, int j) { while(i < j) { char t = ary[i]; ary[i] = ary[j]; ary[j] = t; i++; j--; } } } |