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--;
        }
    }
}
相关推荐
计算机安禾3 分钟前
【算法设计与分析】第29篇:启发式与元启发式搜索方法综述
java·数据库·算法
我叫袁小陌5 分钟前
数据结构详解与算法关联指南
算法
sleven fung5 分钟前
llama-cpp-python 本地部署入门
开发语言·python·算法·llama
头歌实践平台7 分钟前
C++面向对象 - 运算符重载的应用
开发语言·c++·算法
晚风予卿云月15 分钟前
《二分答案》算法练习
数据结构·c++·算法·二分·竞赛·算法随笔
普马萨特23 分钟前
搜索核心算法:从召回到排序
算法·搜索引擎
sheeta199824 分钟前
LeetCode 每日一题笔记 日期:2026.05.31 题目:2126. 摧毁小行星
笔记·算法·leetcode
INGNIGHT34 分钟前
984.不含 AAA 或 BBB 的字符串(贪心)
开发语言·算法·leetcode
飞天狗11137 分钟前
2025第十六届蓝桥杯c/c++B组国赛题解
c语言·c++·算法·蓝桥杯
超梦dasgg43 分钟前
Tarjan算法解 强连通分量 & 循环依赖
算法·深度优先·图论