LeetCode541 - 反转字符串二

LeetCode541 - 反转字符串二

给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。

如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

示例 1:

输入:s = “abcdefg”, k = 2 输出:“bacdfeg” 示例 2:

输入:s = “abcd”, k = 2 输出:“bacd”


思路

和上一题,反转字符串一思路差不多

首先将字符串通过toCharArray( )函数转换成字符串数组

构造一个函数public void reverse(char[] arr, int left, int right),用于反转字符串

然后在从0开始,步长为2k的for循环中反转前k个字符串

class Solution {public String reverseStr(String s, int k) {int n = s.length();//将字符串转换为一个字符数组char[] arr = s.toCharArray();//将数组以2k的间隔进行区分//并反转每个2k区间的前k个元素for(int i = 0; i < n; i += 2 * k){reverse(arr, i, Math.min(i + k, n) - 1);}return new String(arr);}//反转从索引从left到right的数组public void reverse(char[] arr, int left, int right){while(left < right){char tmp = arr[left];arr[left] = arr[right];arr[right] = tmp;left ++;right --;}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/742015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

走进AI新时代:织信低代码的实践与启示

最近 AIGC 很火&#xff0c;在各个领域都玩出了一些新花样。 比如在“低代码”领域&#xff0c;可以通过 AI 自动生成一个网站门户。 但这会带来开发效率的提升吗&#xff1f;如果 AI 能快速开发网站、APP等业务应用&#xff0c;那么 AI 生成能否完全取代低代码的可视化配置&a…

【MATLAB】界面是两个连续的GUI时如何调出第二个

【MATLAB】界面是两个连续的GUI时如何调出第二个 当使用MATLAB完成一个具有两个界面的软件编程后&#xff0c;老板让你将第二个界面中所有中文修改为中文&#xff0c;这时如何调出第二个界面呢&#xff1f; 首先输入guide; 在弹出的框中选择要打开的界面main.fig的路径&#…

产品实操——立项阶段

一、项目开发设计流程&#xff1a; 立项阶段&#xff1a;基本信息、主要方案、市场调研、用户调研、分析得出结论 设计阶段&#xff1a;原型、UI效果图、结构流程设计 开发阶段&#xff1a;前端、后端、数据库、运维等 测试阶段&#xff1a;可用性测试、性能测试、单元测试、集…

跨平台大小端判断与主机节序转网络字节序使用

1.macOS : 默认使用小端 ,高位使用高地址,转换为网络字节序成大端 #include <iostream> #include <arpa/inet.h> int main() {//大小端判断union{short s;char c[sizeof(short)];}un;un.s = 0x0102;printf("低地址:%d,高地址:%d\n",un.c[0],un.c[1]);if …

【安装教程】在Ubuntu上安装MySQL和InfluxDB

一、安装MySQL 官方文档 MySQL :: MySQL Installation Guide :: 7.1 Installing MySQL on Linux Using the MySQL Yum Repositoryhttps://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/linux-installation-yum-repo.html 1、进入下列网站&#xff0c;选择合适版本的…

第0章 学习包介绍

一、考试介绍 二、考点分析 白盒测试、黑盒测试、面向对象测试、web测试&#xff1b;下午题考的概率很大&#xff1b; 上午题考点&#xff1a; 三、资料包 四、如何学习

开发指南007-导出Excel

平台上开发导出Excel比过去的单体架构要复杂些&#xff0c;因为前端和后台不在一个进程空间里。 后台的操作是先生成excel文件&#xff0c;技术路线是jxl <dependency><groupId>net.sourceforge.jexcelapi</groupId><artifactId>jxl</artifactId&g…

每日OJ题_牛客_杨辉三角的变形(IO型OJ)

目录 牛客_杨辉三角的变形 解析代码 牛客_杨辉三角的变形 杨辉三角的变形_牛客题霸_牛客网 解析代码 这题通过的代码首找规律的代码&#xff1a;&#xff08;在下面还贴了普通思路&#xff0c;但超过内存限制的代码&#xff09; 观察分析如果n % 2 1则该行的第一个偶数的位…

vue3的路由拦截?

在 Vue.js 中&#xff0c;可以使用路由拦截器&#xff08;Route Interceptors&#xff09;来实现对路由的拦截和控制。通过路由拦截器&#xff0c;我们可以在路由导航过程中进行一些操作&#xff0c;如验证用户身份、权限控制、重定向等。 Vue Router 提供了全局前置守卫&…

Unity3D 基于ECS的AI思考与怪物同步详解

前言 ECS&#xff08;Entity-Component-System&#xff09;是一种设计模式&#xff0c;它将游戏对象分为实体&#xff08;Entity&#xff09;、组件&#xff08;Component&#xff09;和系统&#xff08;System&#xff09;&#xff0c;使游戏开发更加灵活和高效。 对惹&…

SpringBoot 启动时自动执行指定方法

在Spring Boot应用程序中&#xff0c;要实现在应用启动时自动执行某些代码&#xff0c;可以采用以下几种方式&#xff1a; 1. 使用PostConstruct注解 PostConstruct注解用于标记一个方法&#xff0c;该方法将在依赖注入完成后、构造方法之后自动执行。这适用于需要在对象创建…

移动端研发技术的进化历程

移动端研发技术 移动端研发技术主要分为原生开发和跨平台开发。本章主要介绍一下移动开发技术的过去、当下和未来&#xff0c;一步一步介绍移动技术的进化历程。 原生开发 原生应用程序是指某一个移动平台&#xff08;比如iOS或Android&#xff09;所特有的应用&#xff0c;使…

Vue项目创建新文件后都会提示仅当 “module” 选项设置为 “es2022”、“esnext”、“system”、“node16” -警告提示

警告提示 vscode中vue项目创建新文件后都会提示仅当 “module” 选项设置为 “es2022”、“esnext”、“system”、“node16” 或 “nodenext”&#xff0c;且 “target” 选项设置为 “es2017” 或更高版本时&#xff0c;才允许使用顶级 “await” 表达式。 在 VS Code 中&am…

C语言自学笔记8----C语言Switch语句

C 语言 switch 语句 switch语句使我们可以执行许多代替方案中的一个代码块。 虽然您可以使用if…else…if阶梯执行相同的操作。但是&#xff0c;switch语句的语法更容易读写。 switch … case的语法 switch (expression) { case constant1: // 语句 break; case constant2: // …

安装docker compose

尝试了各种方法 最后按照以下命令进行尝试 成功安装 mkdir -p ~/.docker/cli-plugins && \ curl -fsSL "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSEV2_VERSION-v2.23.3-rc.3}/docker-compose-linux-${TARGET_ARCH} -o ~/.docker/cli…

自适应宽带波束形成:GSC(generalized sidelobe canceller)广义旁瓣消除器原理介绍和实现代码

GSC&#xff08;generalized sidelobe canceller, 广义旁瓣消除器&#xff09;可以将有约束的LCMV算法转换为无约束的实现结构。网上关于GSC的介绍对细节方面介绍得不详细&#xff0c;并且主要是应用在窄带。宽带的GSC应用范围也比较广泛&#xff0c;例如在智能音箱等产品的麦克…

EEPROM ADDRESS BYTE长度说明

1、24C16 ADDRESS BYTE 2、24C32 ADDRESS BYTE 3、ADDRESS BYTE 长度说明 容量小于16Kbits&#xff08;含&#xff09;的EEPROM 地址是8位的 容量大于16Kbits的EEPROM地址是16位的 4、操作说明 例如&#xff1a;STM的HAL库函数中 HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi…

Clickhouse MergeTree 原理(一)

作者&#xff1a;俊达 MergeTree是Clickhouse里最核心的存储引擎。Clickhouse里有一系列以MergeTree为基础的引擎&#xff08;见下图&#xff09;&#xff0c;理解了基础MergeTree&#xff0c;就能理解整个系列的MergeTree引擎的核心原理。 本文对MergeTree的基本原理进行介绍…

若依上传文件/common/upload踩坑

前言&#xff1a;作者用的mac系统&#xff08;这个是个坑&#xff09;&#xff0c;前端用的uniapp&#xff0c;调用若依通用上传方法报错NoSuchFileException: /home/ruoyi/uploadPath/upload... 前端上传代码示例如下: uni.chooseImage({count: 1,success(res){ uni.uploa…

金融级PaaS体系规划

近日&#xff0c;在美丽春城昆明举办了一场闭门的金融行业讨论会&#xff0c;会上灵雀云首席解决方案专家杜东明受邀进行了《金融级PaaS体系规划》的主题分享。他指出&#xff0c;PaaS体系的重要性日益凸显&#xff0c;已经成为金融行业发展的重要驱动力&#xff0c;它能够为金…