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 }

 

posted @ 2024-06-16 21:38  清川1  阅读(20)  评论(0)    收藏  举报