给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。

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

示例:

输入: s = "abcdefg", k = 2
输出: "bacdfeg"

提示:

该字符串只包含小写英文字母。
给定字符串的长度和 k 在 [1, 10000] 范围内。

思路:通俗一点说,每隔k个反转k个,末尾不够k个时全部反转;

class Solution:def reverseStr(self, s: str, k: int) -> str:left, mid, right = 0, k, 2 * k                  # 初始化左中右指针res = ''                                        # 初始化结果字符串while len(res) < len(s):                        # 满足条件时执行res += s[left:mid][::-1] + s[mid:right]     # 把当前单元的结果添加到结果字符串left, mid, right = left + 2 * k, mid + 2 * k, right + 2 * k                          return res                                      # 返回结果

leetcode541. 反转字符串 II(字符串一律用py秒杀)相关推荐

  1. 【Flutter】Dart 数据类型 字符串类型 ( 字符串定义 | 字符串拼接 | 字符串 API 调用 )

    文章目录 I . 字符串定义 I . 字符串拼接 III . 字符串 API 调用 IV . 字符串 Demo 示例 I . 字符串定义 使用单引号 ' ' 和 双引号 " " 都 ...

  2. leetcode 344. 反转字符串 541. 反转字符串 II 双指针解

    目录 leetcode 344.反转字符串 1.题目 2.思考 leetcode 541. 反转字符串 II 1.题目 2.思考 leetcode 344.反转字符串 1.题目 2.思考 典型的双指针 ...

  3. 字符串(一) | 剑指 Offer 58 - II. 左旋转字符串、541. 反转字符串 II、剑指 Offer 05. 替换空格、151. 反转字符串中的单词

    剑指 Offer 58 - II. 左旋转字符串 把前k个字符移动到结尾 翻转前k个字符,翻转剩余字符 翻转整个字符串 class Solution { public:void reverse(str ...

  4. Suzy找到实习了吗Day 8 | 字符串开始啦 344. 反转字符串,541. 反转字符串 II,剑指 Offer 05. 替换空格,151. 反转字符串中的单词,左旋转字符串

    这里是目录 344. 反转字符串 题目 Solution 541. 反转字符串 II 题目 Solution(v1) Solution(v2) 剑指 Offer 05. 替换空格 做题记录 151. ...

  5. 代码随想录算法训练营第八天|● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字符

    一.344.反转字符串 力扣 思路:很简单的一个for循环双指针,left和right交换. class Solution {public void reverseString(char[] s) { ...

  6. 541. 反转字符串 II

    文章目录 1. 题目描述 2. 解题思路 3. 代码实现 1. 题目描述 题目链接:541. 反转字符串 II 2. 解题思路 这道题是 反转字符串 的进阶版,看题目可能有点难理解,其实很简单. 我们 ...

  7. 【必备算法】字符串(反转问题):LeetCode题 344. 反转字符串,541. 反转字符串 II,917. 仅仅反转字母

    写在前面,反转数组的思路很简单,就是借助双指针不断将首尾相应位置的字符交换.Java模板如下: public void reverseArray(char[] arr) {int i = 0, j = ...

  8. 代码随想录算法训练营第八天|344.反转字符串 541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串

    一.344.反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的 ...

  9. Java基础课程---将一个字符串反转,将字符串中指定部分进行反转,比如,abcdefg, 反转为abfedcg...

    1  将一个字符串反转,将字符串中指定部分进行反转,比如,"abcdefg", 反转为"abfedcg" 方式一 public class StringDemo ...

最新文章

  1. ProfessionalDotNetNuke 第一章(摘录)
  2. Java Servlet 编程,重定向介绍
  3. java常用的date类
  4. SQL Server 2019 软件安装包免费下载以及安装教程
  5. Proteus--软件简介及安装教程
  6. Laravel快速创建统计图表
  7. 蓝牙BT射频测试(转发)
  8. 内存测试拷机软件,烤机软件 OCCT 更新 9.0.0 版本,新增 CPU/内存跑分测试
  9. Win7电脑如何关闭智能卡服务功能--win10专业版
  10. 基于51单片机的汽车自动照明灯超声波光敏检测远近光灯方案原理图设计
  11. java毕业设计汽车维修管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  12. 【C#】字体增大、减小、改变颜色
  13. DDD(领域驱动设计)专题(一):什么是DDD?
  14. 中登托管行结算路径_在非根路径上托管Next.JS应用
  15. SSM之spring事务管理
  16. STM32利用SPI读写SD卡的程序详解
  17. 流媒体服务器Darwin Streamer安装配置
  18. 日语考级N1~N5各等级证书含金量如何,代表什么水平?有没有必要考?
  19. 【Vic的小课堂】Unity游戏功能(2)—第一人称镜头
  20. matlab中如何定义整形变量,MATLAB中定义变量的问题

热门文章

  1. JS分布式流转基础学习
  2. android+7.0+nexus,Nexus新机搭安卓7.0+4G全网通
  3. 结对编程_结对编程:使其工作的好处,技巧和建议
  4. 简述windows环境下的homestead安装
  5. R语言(五)——横截面数据分类:经典方法(logistic、probit、判别分析)
  6. 【论文笔记 医疗影像分割—nnUNet】nnU-Net: Self-adapting Framework for U-Net-Based Medical Image Segmentation
  7. 各相机模型(针孔+鱼眼)综述
  8. 最经典的关于PV操作的解释说明
  9. matlab 分式拟合,第七讲matlab实现非线性拟合.ppt
  10. jooq mysql_JOOQ 入门--简介