代码随想录算法训练营第八天 | 反转字符串、反转字符串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

替换数字

新建哟个足够长的空间,从后向前插入

posted @ 2026-03-12 00:35  月鸣  阅读(1)  评论(0)    收藏  举报