344.反转字符串
双指针(与反转链表类似)
class Solution {
public void reverseString(char[] s) {
int left = 0;
int right = s.length - 1;
while(left < right){
char temp = s[left];
s[left] = s[right];
s[right] = temp;
right--;
left++;
}
}
}
541.反转字符串Ⅱ
详情代码随想录
思路:每2k个元素进一次循环,2k里的前k个反转。最后不够2k个的依然反转前k个(不够k个就是全反转)
class Solution {
public String reverseStr(String s, int k) {
char[] ch = s.toCharArray();
for(int i = 0; i < ch.length; i += 2*k){
int start = i;
// 判断尾数够不够k个来取决end指针的位置
int end = Math.min(ch.length - 1,i + k -1);
while(start < end){
char temp = ch[start];
ch[start] = ch[end];
ch[end] = temp;
start++;
end--;
}
}
return new String(ch);
}
}
54.替换数字(卡码网)
先过一下
151.反转字符串中的单词
代码随想录 空格的问题,还要再想想