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--;
        }
    }
}
相关推荐
Shun_Tianyou24 分钟前
Python Day21 re模块正则表达式 简单小说爬取 及例题分析
开发语言·数据结构·python·算法·正则表达式
枯萎穿心攻击33 分钟前
算法入门第一篇:算法核心:复杂度分析与数组基础
算法·unity·矩阵·c#·游戏引擎
千里镜宵烛42 分钟前
互斥锁与条件变量
linux·开发语言·c++·算法·系统架构
ezl1fe43 分钟前
RAG 每日一技(十四):化繁为简,统揽全局——用LangChain构建高级RAG流程
人工智能·后端·算法
爱科研的瞌睡虫1 小时前
C++线程中 detach() 和 join() 的区别
java·c++·算法
凤年徐1 小时前
【数据结构与算法】刷题篇——环形链表的约瑟夫问题
c语言·数据结构·c++·算法·链表
张子夜 iiii2 小时前
机器学习算法系列专栏:逻辑回归(初学者)
人工智能·算法·机器学习·逻辑回归
vivo互联网技术2 小时前
慢SQL优化实战:从一例线上慢SQL探究执行引擎工作过程
数据库·mysql·算法
我想吃烤肉肉2 小时前
leetcode-python-删除链表的倒数第 N 个结点
python·算法·leetcode·链表