541. 反转字符串 II【力扣】

  1. 反转字符串 II

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

如果剩余字符少于 k 个,则将剩余字符全部反转。

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

示例 1:

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

输出:"bacdfeg"

示例 2:

输入:s = "abcd", k = 2

输出:"bacd"

思路

翻转2k个字符的前k个字符=>将 s 分为长度为 2k 的小段用 reverse 翻转前k个=>特殊情况: 若最后一段不足k个则全部翻转

cpp 复制代码
class Solution {
public:
    string reverseStr(string s, int k) {
        for(int i=0;i<s.size();i+=(2*k)){
            if(i+k<=s.size()) reverse(s.begin()+i,s.begin()+i+k);
            else reverse(s.begin()+i,s.end());
        }
        return s;
    }
};

541. 反转字符串 II

相关推荐
ZouZou老师2 小时前
C++设计模式之工厂方法模式:以家具生产为例
c++·设计模式·工厂方法模式
MicroTech20252 小时前
MLGO微算法科技发布突破性运动想象脑机接口算法,高精度与低复杂度兼得
科技·算法
cici158742 小时前
基于不同算法的数字图像修复Matlab实现
算法·计算机视觉·matlab
fish_xk5 小时前
c++中的引用和数组
开发语言·c++
有点。8 小时前
C++ ⼀级 2024 年 03 ⽉
c++
CC.GG8 小时前
【C++】二叉搜索树
java·c++·redis
Savior`L9 小时前
二分算法及常见用法
数据结构·c++·算法
深海潜水员9 小时前
OpenGL 学习笔记 第一章:绘制一个窗口
c++·笔记·学习·图形渲染·opengl
mmz120710 小时前
前缀和问题(c++)
c++·算法·图论
ULTRA??10 小时前
初学protobuf,C++应用例子(AI辅助)
c++·python