代码随想录二刷 |字符串 |反转字符串II

代码随想录二刷 |字符串 |反转字符串II

  • 题目描述
  • 解题思路 & 代码实现

题目描述

541.反转字符串II

给定一个字符串 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

解题思路 & 代码实现

再循环中让i的步长为2k即可,剩余字符 = s.szie() - i,根据条件可得不等式:k <= s.size() - i < 2k,化简一下可得k + i <= s.size() < 2k + i,我们要找的是最小满足条件,因此用k + i <= s.szie()就可以。

class Solution {
public:string reverseStr(string s, int k) {for (int i = 0; i < s.size(); i += (2 * k)) {// 1.每隔 2k 个字符的前 k 个字符进行反转// 2.剩余字符小于 2k 且大于等于 k ,反转前 k 个字符if (i + k <= s.size()) {reverse(s.begin() + i, s.begin() + i + k);} else { // 3.剩余字符小于 k 个,则将剩余字符全部反转reverse(s.begin() + i, s.end());}}return s;}
};

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

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

相关文章

Linux /etc/shadow密码生成操作示例

一. 前言 之前学习过Linux文件系统下/etc/shadow里面保存着各个用户名的密码&#xff0c;并且密码是通过MD5算法加盐的方式生成的。但是一直没有自己真正动手生成过&#xff0c;今天&#xff0c;就来自己动手写代码生成下。 二. 代码验证/etc/shadow中密码 1. 通过passwd命令生…

算法通关村第六关—序列恢复二叉树(青铜)

根据序列恢复二叉树 示例 给定序列恢复二叉树(1)前序&#xff1a;1 2 3 4 5 6 8 7 9 10 11 12 13 15 14(2)中序&#xff1a;3 4 8 6 7 5 2 1 10 9 11 15 13 14 123)后序&#xff1a;8 7 6 5 4 3 2 10 15 14 13 12 11 9 1 一、前中序列恢复二叉树 (1)前序&#xff1a;1 2 3…

try-with-resources使用

1、使用场景 针对 Java 中资源管理和异常管理的正确做法已经有了很好的文档说明。对于任何已成功初始 化的资源&#xff0c;都需要相应地调用它的 close() 方法。这就要求严格遵守 try/catch/finally 块的用法&#xff0c;以 确保任何从资源打开时起的执行路径最终都能调用一…

电商营销场景的RocketMQ实战01-RocketMQ原理

架构图 Broker主从架构与集群模式 RocketMQ原理深入剖析 Broker主从架构原理 HAConnection与HAClient Broker基于raft协议的主从架构 Consumer运行原理 基础知识 001_RocketMQ架构设计与运行流程分析 RocketMQ这一块&#xff0c;非常关键的一个重要的技术&#xff0c;面试的时候…

高级IO select 多路转接实现思路

文章目录 select 函数fd_set 类型timeval 结构体select 函数的基本使用流程文件描述符就绪条件以select函数为中心实现多路转接的思路select 缺陷 select 函数 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); selec…

PlantUML语法(全)及使用教程-时序图

目录 1. 参与者1.1、参与者说明1.2、背景色1.3、参与者顺序 2. 消息和箭头2.1、 文本对其方式2.2、响应信息显示在箭头下面2.3、箭头设置2.4、修改箭头颜色2.5、对消息排序 3. 页面标题、眉角、页脚4. 分割页面5. 生命线6. 填充区设置7. 注释8. 移除脚注9. 组合信息9.1、alt/el…

docker的知识点,以及使用

Docker 是一个开源的应用容器引擎&#xff0c;可以让开发者将应用程序及其依赖项打包至一个可移植的容器中&#xff0c;从而实现快速部署、可扩展和依赖项隔离等特性。下面是 Docker 的一些知识点以及使用方法&#xff1a; Docker 的组成部分包括 Docker 引擎、Docker 镜像、Do…

MySQL三大日志详细总结(redo log undo log binlog)

MySQL日志 包括事务日志&#xff08;redolog undolog&#xff09;慢查询日志&#xff0c;通用查询日志&#xff0c;二进制日志&#xff08;binlog&#xff09; 最为重要的就是binlog&#xff08;归档日志&#xff09;事务日志redolog&#xff08;重做日志&#xff09;undolog…

MySQL备份与恢复(重点)

MySQL备份与恢复&#xff08;重点&#xff09; 一、用户管理与权限管理 ☆ 用户管理 1、创建MySQL用户 注意&#xff1a;MySQL中不能单纯通过用户名来说明用户&#xff0c;必须要加上主机。如jack10.1.1.1 基本语法&#xff1a; mysql> create user 用户名被允许连接的主…

ssm+vue的仓库在线管理系统的设计与实现(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的仓库在线管理系统的设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三…

建文工程项目管理软件 SQL 注入漏洞复现

0x01 产品简介 建文工程管理软件是一个适用于工程投资领域的综合型的多方协作平台。 0x02 漏洞概述 建文工程项目管理软件BusinessManger.ashx、Desktop.ashx等接口处存在SQL注入漏洞&#xff0c;攻击者可通过该漏洞获取数据库中的信息&#xff08;例如&#xff0c;管理员后台…

无图谱不AI之三元组数据保存Neo4j

目录 1. 代码学习1.1 源代码1.2 代码解读 没有图谱称为弱人工智能&#xff0c;有图谱的称为强人工智能。 图谱可以让机器学习和人工智能具备推理能力。 1. 代码学习 1.1 源代码 # -*- coding: utf-8 -*- from py2neo import Node, Graph, Relationship# 可以先阅读下文档&a…

微信小程序体验版提交审核,提示接口未配置在app.json文件且无权限

在火狐浏览器 打开微信公众平台 发布小程序 弹窗一闪而过 是因为 放开这里就可以了

RPA机器人如何确保敏感数据的安全性

数据资源作为数字化时代的关键要素&#xff0c;其重要性一直受到高度重视&#xff0c;由此&#xff0c;数据安全也成为企业和个人必须面对的重要问题。随着RPA技术在各个行业的广泛应用&#xff0c;其系统安全性也成了每个企业关注的重中之重。经验丰富的RPA专家可以有效地采取…

已解决!nginx+php上传大文件返回502错误

先说结论&#xff1a;需要修改fpm配置文件&#xff1a; request_terminate_timeout 300 request_terminate_timeout和max_execution_time 有何不同&#xff1f; request_terminate_timeout和max_execution_time是两个不同的PHP配置参数&#xff0c;它们分别控制着不同的执行…

.360、halo勒索病毒来敲门:抗击.360、halo病毒的智慧安全策略

尊敬的读者&#xff1a; 在数字时代&#xff0c;网络威胁层出不穷&#xff0c;而.360、halo勒索病毒正是近期崛起的一位狡诈对手。本文将深度解析.360、halo病毒的毒性攻击方式&#xff0c;为你揭示如何在遭受其加密威胁后迅速自救&#xff0c;同时提供切实可行的预防策略。面对…

python 入门基础(一)

1. python 的程序结构&#xff1a;包、模块、函数。 包里面包含多个模块&#xff0c;模块里面包含多个函数。 3. python的数据结构&#xff1a; 元组 列表 字典&#xff08;仅列出不同于c的地方&#xff09; 4. 模块&#xff1a;一个文件就是一个模块。 模块里面可以包…

网络通信安全的坚固防线双向认证技术详解

目录 什么是双向认证 双向认证的工作原理 双向认证的实现方式 双向认证的重要性 双向认证的挑战 安全最佳实践 小结 什么是双向认证 双向认证&#xff0c;又称为双向身份验证或双向鉴别&#xff0c;是一种在通信双方之间建立信任关系的安全机制。在通信过程中&#xff0…

EI级 | Matlab实现TCN-BiLSTM-Multihead-Attention多头注意力机制多变量时间序列预测

EI级 | Matlab实现TCN-BiLSTM-Multihead-Attention多头注意力机制多变量时间序列预测 目录 EI级 | Matlab实现TCN-BiLSTM-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.【EI级】Matlab实现TCN-BiLSTM-Multihead-…

特征变换1

编译工具&#xff1a;PyCharm 有些编译工具不用写print可以直接将数据打印出来&#xff0c;pycharm需要写print才会打印出来。 概念 1.特征类型 特征的类型&#xff1a;“离散型”和“连续型” 机器学习算法对特征的类型是有要求的&#xff0c;不是任意类型的特征都可以随意…