当前位置: 首页 > news >正文

LeetCode[541]反转字符串Ⅱ

思路:

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

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

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

代码:

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--;
        }
    }
}

 

相关文章:

  • 字符串与相应函数(下)
  • 记录一次TDSQL网关夯住故障
  • 安全密码处理实践
  • Spring Boot 项目里设置默认国区时区,Jave中Date时区配置
  • AI大模型从0到1记录学习 数据结构和算法 day18
  • 实验一 字符串匹配实验
  • HDMI与DVI接口热插拔检测
  • STM32单片机入门学习——第37节: [11-2] W25Q64简介
  • GPT4O画图玩法案例,不降智,非dalle
  • 13-scala模式匹配
  • QML与C++:基于ListView调用外部模型进行增删改查(附自定义组件)
  • Golang|Channel 相关用法理解
  • 大模型SAM辅助labelme分割数据集(纯小白教程)
  • Java栈与队列深度解析:结构、实现与应用指南
  • 用密钥方式让通过JumpServer代理的服务器可以在我本地电脑直接访问
  • Java 设计模式:外观模式详解
  • 5.6 GitHub PR分析爆款方案:分层提示工程+LangChain实战,准确率飙升22%
  • 什么是RAG
  • Nodejs Express框架
  • 【ai回答记录】在sql中使用DATE_SUB 跟 用python或者java的Date计算时间差,哪个速度更加快?
  • 国台办:民进党当局所谓“对等尊严”,就是企图改变两岸同属一中
  • 神舟十九号航天员乘组平安抵京
  • 南部战区位南海海域进行例行巡航
  • 中国建设银行浙江省分行原党委书记、行长高强接受审查调查
  • 跟着京剧电影游运河,京杭大运河沿线六城举行京剧电影展映
  • 直播电商行业代表呼吁:携手并肩伸出援手助力外贸企业攻坚克难