代码随想录算法训练营第八天 | 反转字符串、反转字符串II、替换数字
反转字符串
主要是用到双指针,两头向中间移动
/*
* @lc app=leetcode.cn id=344 lang=java
*
* [344] 反转字符串
*/
// @lc code=start
class Solution {
public void reverseString(char[] s) {
for (int i = 0; i < s.length - i; i++) {
char temp = s[i];
s[i] = s[s.length - 1 - i];
s[s.length - 1 - i] = temp;
}
}
}
// @lc code=end
反转字符串II
同反转指针,分区反转
/*
* @lc app=leetcode.cn id=541 lang=java
*
* [541] 反转字符串 II
*/
// @lc code=start
class Solution {
public String reverseStr(String s, int k) {
char[] c = new char[s.length()];
c = s.toCharArray();
for(int i = 0; i < c.length; i += 2 * k){
int begin = i;
int end = Math.min(i + k, c.length);
for (int j = begin; j < (begin + end) / 2; j++) {
char temp = c[j];
c[j] = c[begin + end - 1 - j];
c[begin + end - 1 - j] = temp;
}
}
return new String(c);
}
}
// @lc code=end
替换数字
新建哟个足够长的空间,从后向前插入

浙公网安备 33010602011771号