力扣541 反转字符串Ⅱ Java版本

文章目录

  • 题目描述
  • 代码
  • 自己需要注意的地方


题目描述

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

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

示例 1:

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

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

提示:

1 <= s.length <= 104
s 仅由小写英文组成
1 <= k <= 104

代码

class Solution {public String reverseStr(String s, int k) {int len = s.length();char[] chars = s.toCharArray();for (int i = 0; i < len; i=i+2*k) {int r = i+k-1;//如果r已经超过了len-1,那么就是需要把剩余的字符都反转if(r<(len-1)){reverse(chars,i,r);}else {reverse(chars,i,len-1);}}String res = new String(chars);return  res;}//这个函数是用来反转指定区间范围内的字符串public void reverse(char[] arr, int start, int end) {int left = start;int right = end;while (left < right) {char temp = arr[left];arr[left]=arr[right];arr[right]=temp;left++;right--;}}
}

自己需要注意的地方

1、起初自己针对多种情况进行判断比较麻烦,没有利用循环每次加i=i+2*k这种方法,比较麻烦
2、最后返回字符串的时候不能用chars.toString(),因为这样会用下面这种方式转化

public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}

输出的结果并不是我们期望的形式
应该用下面这种方式来转化才是要输出的形式

String res = new String(chars);

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

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

相关文章

STM32 PWM驱动设计

单片机学习&#xff01; 目录 文章目录 前言 一、PWM驱动配置步骤 二、代码示例及注意事项 2.1 RCC开启时钟 2.2 配置时基单元 2.3 配置输出比较单元 2.4 配置GPIO 2.5 运行控制 三、PWM周期和占空比计算 总结 前言 PWM本质是利用面积等效原理来改变波形的有效值。 一、PWM驱动…

C++初阶入门之命名空间和缺省参数的详细解析

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.前言 二.命名空间 2.1命名冲突的例子 2.2解决方案 2.3命…

操作Date时间方法

文章目录 1. 两个Date时间类型数值做对比1、使用Date类&#xff1a;2、使用LocalDateTime类&#xff1a; 2. 字符串转Date1、使用SimpleDateFormat类&#xff1a;2、使用DateTimeFormatter类&#xff1a; 3. new Date()格式化字符串 年月日4. 两个date数据类型相差天数1、 计算…

SPA单页面的讲解(超级详细)

目录 一、什么是SPA 二、SPA和MPA的区别 单页应用与多页应用的区别 单页应用优缺点 三、实现一个SPA 原理 实现 hash 模式 history模式 四、题外话&#xff1a;如何给SPA做SEO SSR服务端渲染 静态化 使用Phantomjs针对爬虫处理 一、什么是SPA SPA&#xff08;sin…

这是一片测试文章

这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 这是一片测试文章 真的是测试文章 -111122225555444433333333222211111 dddddaaa

❤css实用

❤ css实用 CSS渐变色边框&#xff08;Gradient borders方法的汇总 5种-代码可直接下载&#xff09; 资源链接 https://download.csdn.net/download/weixin_43615570/88779950?spm1001.2014.3001.5503 给 border 设置渐变色是很常见的效果&#xff0c;实现这个效果有很多思路…

近20k stars,GSYVideoPlayer一款优秀的视频播放器

近20k stars&#xff0c;GSYVideoPlayer一款优秀的视频播放器 引言 在现代社会中&#xff0c;视频已经成为人们获取信息和娱乐的重要形式。为了提供更好的观看体验&#xff0c;开发一款优秀的视频播放器变得至关重要。而GSYVideoPlayer作为一款功能强大、稳定可靠的视频播放器…

浙江机电职业技术学院第八届新生亮相赛(同步赛)D.一种很新的阶乘【线性筛+一分为二法】

原题链接&#xff1a;https://ac.nowcoder.com/acm/contest/73799/D 时间限制&#xff1a;C/C 2秒&#xff0c;其他语言4秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 夜雷很喜欢特别大的数字&#xff0c;曾经一度算阶乘…

没指定spring-boot-maven-plugin版本导致编译失败,这坑你踩过没

文章目录 1. 前言2. 组件版本信息3. 事件经过3.1 本地通过maven命令打包3.2 定位问题步骤3.2.1 核对spring-boot-maven-plugin版本信息3.2.2 spring-boot-maven-plugin版本错误原因 3.3 解决方案 4.结论 1. 前言 我们在平时开发过程中关注的比较多的是项目开发时依赖包的版本以…

lightdb object支持static函数

文章目录 背景介绍语法示例 背景 在信创适配中&#xff0c;从Oracle迁移过来的程序使用STATIC函数。为此LightDB从24.1版本开始&#xff0c;对该功能进行了支持。 介绍 LightDB 24.1版本中对象方法包括下列几种&#xff1a; MEMBER方法&#xff1a;MEMBER方法可以被对象实例…

数据结构(绪论+算法的基本概念)

文章目录 一、绪论1.1、数据结构的基本概念1.2、数据结构三要素1.2.1、逻辑结构1.2.2、数据的运算1.2.3、物理结构&#xff08;存储结构&#xff09;1.2.4、数据类型和抽象数据类型 二、算法的基本概念2.1、算法的特性2.2、“好”算法的特质2.2.1、算法时间复杂度2.2.2、算法空…

java数学计算工具类 double精确的加法算法 double精确的减法算法

java数学计算工具类 double精确的加法算法 double精确的减法算法 精确的乘法算法 对精确的除法运算&#xff0c;当发生除不尽的 保留小数、数值精度 精确的加法算法:2.27 精确的减法算法:0.01 精确的乘法算法:1.2882 相对精确的除法运算&#xff0c;当发生除不尽的情况时&…

【WebGPU】简介和开始

简介 WebGPU 是一种 API&#xff0c;用于在 Web 应用中访问 GPU 的功能。在 WebGPU 出现之前&#xff0c;有一个 WebGL&#xff0c;它提供了 WebGPU 的部分功能。它开创了一种新的富媒体 Web 内容类别&#xff0c;并且开发者也利用它构建了许多精彩的内容。不过&#xff0c;它…

领域驱动设计(Domain-Driven Design DDD)——通过重构找到深层次模型1

一、概述 重构就是在不改变软件功能的前提下重新设计它。开发人员无需在着手开发之前做出详细的设计决策&#xff0c;只需要在开发过程中不断小幅调整设计即可&#xff0c;这不但能够保证软件原有的功能不变&#xff0c;还可使整个设计更加灵活易懂。 我们面临的真正挑战是找到…

【机器视觉实验】机器视觉实验四——基于knn的场景图像检索、基于SVM的人脸图像识别

一、实验内容 实验内容包含要进行什么实验,实验的目的是什么,实验用到的算法及其原理的简单介绍。 (1) 编程实现基于knn的场景图像检索 a) 至少实现三种特征组合进行检索; b) 使用recall与precision分析不同特征组合对检索精度的影响。 (2) 实现基于SVM的人脸图像识…

java使用MD5加密

java使用MD5加密 源字符串&#xff1a;三四五 使用 UTF-8字符集字符集加密后的结果为:f2615f1dab4520fc1e1a79ed6a4f7b37 用 GB2312 字符集加密后的结果为:1dbb006b41466197c486592727af516f 用 GBK 字符集加密后的结果为:1dbb006b41466197c486592727af516f

TCP 状态转换以及半关闭

TCP 状态转换&#xff1a; 上图中还没有进行握手的时候状态是关闭的。 三次握手状态的改变&#xff1a; 客户端发起握手。 调用 connect() 函数时状态转化为&#xff1a;SYN_SENT。调用 listen() 函数时状态转换为&#xff1a;LISTEN。ESTABLISHED是被连接的状态。 四次挥手…

Python系列(7)—— 运算符的优先级

一、引言 在Python中&#xff0c;当一个表达式包含多个运算符时&#xff0c;运算符的优先级决定了这些运算符的执行顺序。高优先级的运算符会先于低优先级的运算符进行计算。了解和掌握运算符的优先级对于编写正确的Python代码至关重要。 二、Python中的运算符优先级 Python…

2023-2024年广东省职业院校技能大赛信息安全管理与评估赛项规程

2023-2024 年度广东省职业院校技能大赛“信息安全管理与评估”赛项规程 一、赛项名称 赛项编号&#xff1a;GZ032 赛项名称&#xff1a;信息安全管理与评估 英语翻译&#xff1a;Information Security Management and Evaluation 赛项组别&#xff1a;高职组 竞赛形式&am…

httprunnerV4.X的基本使用详解

目录 1、httprunner概述 1.1、httprunner的优点 2、httprunner的安装 3、基本命令的使用 3.1、生成脚手架 3.2、将har文件转换为测试用例文件 3.3、执行测试用例 3.4、为项目创建虚拟环境&#xff0c;然后安装httprunner库 3.4、执行测试用例生成测试报告 4、httprun…