541、反转字符串II
重点:for循环条件中i++,是执行完再加;每次从头开始遍历leetcode题目209、长度最小的子数组04字符串:344、反转字符串
- for循环遍历:每隔2k个遍历一次,反转前K个
方法一: for循环遍历
public String reverseStr(String s, int k) {
//转为char数组好反转
char[] ch = s.toCharArray();
//遍历
for (int i = 0; i < ch.length; i += (2 * k)) {
//最后一步,进行判断,全部反转 小于K就全部反转
if (i + k > ch.length) {
reverse(ch, i, ch.length - 1);
break;
}
//正常反转 和 大于K反转前K个
reverse(ch, i, i + k - 1);
}
return new String(ch);
}
// 定义翻转函数
public void reverse(char[] ch, int i, int j) {
for (; i < j; i++, j--) {
char temp = ch[i];
ch[i] = ch[j];
ch[j] = temp;
}
}