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

相关推荐
m0_748248026 分钟前
《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
java·开发语言·c++·算法
天选之女wow8 分钟前
【代码随想录算法训练营——Day61】图论——97.小明逛公园、127.骑士的攻击
算法·图论
aloha_78914 分钟前
测试开发工程师面经准备(sxf)
java·python·leetcode·压力测试
卡提西亚27 分钟前
一本通网站1122题:计算鞍点
c++·笔记·编程题·一本通
im_AMBER33 分钟前
Leetcode 47
数据结构·c++·笔记·学习·算法·leetcode
HLJ洛神千羽38 分钟前
C++程序设计实验(黑龙江大学)
开发语言·c++·软件工程
kyle~43 分钟前
算法数学---差分数组(Difference Array)
java·开发语言·算法
橘颂TA1 小时前
机器人+工业领域=?
算法·机器人
滨HI01 小时前
C++ opencv拟合直线
开发语言·c++·opencv
艾莉丝努力练剑2 小时前
【C++:红黑树】深入理解红黑树的平衡之道:从原理、变色、旋转到完整实现代码
大数据·开发语言·c++·人工智能·红黑树