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

LeetCode 541 反转字符串 II 简单

题目 - 点击直达

  • 1. 541 反转字符串 II 简单
    • 1. 题目详情
      • 1. 原题链接
      • 2. 题目要求
      • 3. 基础框架
    • 2. 解题思路
      • 1. 思路分析
      • 2. 时间复杂度
      • 3. 代码实现

1. 541 反转字符串 II 简单

1. 题目详情

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

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

1. 原题链接

LeetCode 541 反转字符串 II 简单

2. 题目要求

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

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

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

3. 基础框架

● Cpp代码框架

class Solution {
public:string reverseStr(string s, int k) {
};

2. 解题思路

1. 思路分析

( 1 ) (1) (1) 一个变量 s t a r t start start记录需要逆置的部分的起始下标;
( 2 ) (2) (2) 计算从 s t a r t start start下标开始剩余的字符数量 n u m num num,对 n u m num num进行判断;
( 3 ) (3) (3) n u m num num 大于等于 2 ∗ k 2*k 2k ,则逆置从 s t a r t start start开始的前 k k k个字符,start更新加上 2 ∗ k 2*k 2k
( 4 ) (4) (4) n u m num num 小于 2 ∗ k 2*k 2k但大于等于 k k k,则逆置从 s t a r t start start开始的前 k k k个字符,此时是最后一次逆置, s t a r t start start更新为整个字符串的大小;
( 5 ) (5) (5) n u m num num小于 k k k,则逆置从 s t a r t start start开始的剩余字符,此时是最后一次逆置, s t a r t start start更新为整个字符串的大小;

2. 时间复杂度

O ( N / k ) O(N/k) O(N/k)
每次处理 2 ∗ k 2*k 2k个字符,长度为n的字符串处理 n / ( 2 ∗ k ) + 1 n/(2*k) + 1 n/(2k)+1次;

3. 代码实现

class Solution {
public:string reverseStr(string s, int k) {// [0, 2k-1]// [2k, 4k-1]// [4k, 6k-1]// ...// startint start = 0;while(start < s.size()){if(s.size() - start >= 2 * k){reverse(s.begin() + start, s.begin() + start + k);start += 2 * k;}else if(s.size() - start >= k){reverse(s.begin() + start, s.begin() + start + k);start = s.size();}else{reverse(s.begin() + start, s.end());start = s.size();}}return s;}
};

http://www.lryc.cn/news/211235.html

相关文章:

  • 从入门到精通:深入了解CSS中的Grid网格布局技巧和应用!
  • Android Studio Giraffe 添加 maven { url “https://jitpack.io“ }报错
  • Linux C/C++ 实现网络流量分析(性能工具)
  • python门牌制作,统计某个数字出现的次数
  • 轻量封装WebGPU渲染系统示例<7>-材质多pass(源码)
  • 0030Java程序设计-积分管理系统论文
  • H5游戏源码分享-考眼力游戏猜猜金币在哪
  • 2023 年值得关注的国外网络安全初创公司
  • 搞定蓝牙-第六篇(HID
  • Open3D(C++) 最小二乘拟合平面(直接求解法)
  • lua移植及使用
  • 【鸿蒙软件开发】ArkTS基础组件之Select(下拉菜单)、Slider(滑动条)
  • linux ssh 免密登录
  • 秒级启动的集成测试框架
  • Redux 数据仓库
  • [毕设记录]@开题调研:一些产品
  • CSS3中的字体和文本样式
  • LVS集群-DR模式【部署高可用LVS-DR集群】
  • 银河麒麟服务器版v4安装程序缺少依赖包,改为利用手机联网在线安装
  • Maven第一章:Maven安装、验证、使用
  • ios 代码上下文截屏之后导致的图片异常问题
  • 《嵌入式软\硬件开发难点-2023-10-29》
  • 基于5G工业CPE打造智慧煤矿无人巡检监测应用
  • 考点之数据结构
  • 07、SpringCloud -- jmeter 压测
  • 省市区三级联动查询redis(通过python脚本导入数据)
  • Linux命令(108)之dirname
  • SDL事件处理以及线程使用(2)
  • DAY38 动态规划 + 509. 斐波那契数 + 70. 爬楼梯 + 746. 使用最小花费爬楼梯
  • Redis快速上手篇七(集群-一台虚拟机六个节点)