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

力扣 LeetCode 541. 反转字符串II(Day4:字符串)

解题思路:

i可以成段成段的跳,而不是简单的i++

class Solution {
    public String reverseStr(String s, int k) {
        char[] ch = s.toCharArray();
        // 1. 每隔 2k 个字符的前 k 个字符进行反转
        for (int i = 0; i < ch.length; i += 2 * k) {
            // 2. 剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符
            if (i + k <= ch.length) {
                reverse(ch, i, i + k - 1);
                continue;
            } 
            // 3. 剩余字符少于 k 个,则将剩余字符全部反转
            reverse(ch, i, ch.length - 1);
        }
        return new String(ch);
    }

    public void reverse(char[] c, int i, int j) {
        while(i < j){
        char tmp = c[i];
        c[i] = c[j];
        c[j] = tmp;
        i++;
        j--;
        }

    }
}


http://www.kler.cn/a/397247.html

相关文章:

  • 丹摩征文活动 |【前端开发】HTML+CSS+JavaScript前端三剑客的基础知识体系了解
  • Springboot集成ElasticSearch实现minio文件内容全文检索
  • 基于OpenCV的图片人脸检测研究
  • Tiktok对接和内容发布申请流程
  • 字节青训营 数字魔法的加一操作
  • 【计算机网络】设备如何监听 ARP 请求广播
  • Vue3 模板语法
  • C#调用方法时获取方法名、类名、命名空间
  • Spring-boot 后端java配置接口返回jsp页面
  • leetcode100:相同的树
  • 前端面试笔试(三)
  • MySQL:表设计
  • Ubuntu24.04上安装和配置MariaDB
  • 内容营销专家刘鑫炜:AI搜索会让内容营销变得更容易吗?
  • html + css 自适应首页布局案例
  • 如何编译 Cesium 源码
  • 机器学习基础02_特征工程
  • 介绍一下整数在内存的储存形式(c基础)
  • 第 15 章 -Go 语言 并发编程
  • C# 常用三方库
  • 主界面获取个人信息客户端方
  • 归并排序(C语言)
  • python基础知识(四)——发送请求、接口关联
  • 问:说说SpringDAO及ORM的用法?
  • MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并--封装到存储过程中
  • Spring Boot基础教学:创建第一个Spring Boot项目