Q35 LeetCode541 反转字符串2
1.循环的每次i的起始位置 i=i+2*k
2.交换起始位置 start=i,end=Math.min(ch.length - 1,start + k - 1);判断尾数够不够k个来取决end指针的位置
1 class Solution { 2 public String reverseStr(String s, int k) { 3 char[] ch = s.toCharArray(); 4 for(int i = 0;i < ch.length;i += 2 * k){ 5 int start = i; 6 // 判断尾数够不够k个来取决end指针的位置 7 int end = Math.min(ch.length - 1,start + k - 1); 8 while(start < end){ 9 10 char temp = ch[start]; 11 ch[start] = ch[end]; 12 ch[end] = temp; 13 14 start++; 15 end--; 16 } 17 } 18 return new String(ch); 19 } 20 }

浙公网安备 33010602011771号