LeetCode[541]反转字符串Ⅱ

思路:

题目给我们加了几个规则,剩余长度小于2k,大于等于k就反转k个,小于k就全部反转,我们按照这个逻辑来就行。

第一就是大于等于k就反转k个,我们for循环肯定是i+=2k了,接下来就是判断是否大于等于k,大于等于就反转,头是i, 尾是i+k。

第二就是小于k,我们就直接头是i,尾是长度-1

代码:

java 复制代码
class Solution {
    public String reverseStr(String s, int k) {
        char[] ch = s.toCharArray();

        for (int i = 0; i < ch.length; i += 2 * k) {

            if (i + k <= ch.length) {
                reverse(ch, i, i + k - 1);
                continue;
            }

            reverse(ch, i, ch.length - 1);

        }
        return new String(ch);
    }

    public void reverse(char[] ch, int begin, int end) {
        while (begin < end) {
            char temp = ch[begin];
            ch[begin] = ch[end];
            ch[end] = temp;
            begin++;
            end--;
        }
    }
}
相关推荐
博笙困了1 天前
AcWing学习——链表
c++·算法
NAGNIP1 天前
AI训练要的数据这么多,怎么存?
算法
CoovallyAIHub1 天前
冻结比微调更好?YOLOv8/V10迁移学习最佳实践发布,GPU内存直降28%
深度学习·算法·计算机视觉
爱编程的化学家1 天前
代码随想录算法训练营第21天 -- 回溯4 || 491.非递减子序列 / 46.全排列 /47.全排列 II
数据结构·c++·算法·leetcode·回溯·全排列·代码随想录
console.log('npc')1 天前
前端性能优化,给录音播放的列表加个播放按键,点击之后再播放录音。减少页面的渲染录音文件数量过多导致加载缓慢
前端·javascript·vue.js·算法
_不会dp不改名_1 天前
leetcode_138 随机链表的复制
算法·leetcode·链表
小欣加油1 天前
leetcode 129 求根节点到叶节点数字之和
数据结构·c++·算法·leetcode
DuHz1 天前
Stable Video Diffusion:将潜在视频扩散模型扩展到大规模数据集——论文阅读
论文阅读·人工智能·深度学习·神经网络·算法·音视频
彩云回1 天前
决策树(Decision Tree)
算法·决策树·机器学习
铭哥的编程日记1 天前
C++优选算法精选100道编程题(附有图解和源码)
开发语言·c++·算法