当前位置: 首页 > 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计算时间差,哪个速度更加快?
  • 两部门:推动“青年驿站”为毕业生跨地区求职提供住宿优惠便利
  • 民生访谈|公共数据如何既开放又安全?政务领域如何适度运用人工智能?
  • “谁羽争锋”全国新闻界羽毛球团体邀请赛在厦门开赛
  • 限时离境、关闭领空、暂停贸易,巴基斯坦宣布一系列对印反制措施
  • 央行上海总部:受益于过境免签政策,上海市外卡刷卡支付交易量稳步增长
  • 王鹏任海南文昌市委书记