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

相关推荐
东北赵四5 分钟前
JVM之垃圾回收器ZGC概述以及垃圾回收器总结的详细解析
java·jvm·算法
测试老哥10 分钟前
白盒测试用例的设计详解
自动化测试·软件测试·测试工具·职场和发展·单元测试·测试用例·测试覆盖率
hqxnb66626 分钟前
构建高效的进程池:深入解析C++实现
开发语言·c++·算法
kucupung28 分钟前
【编译构建】用cmake编译libjpeg动态库并实现转灰度图片
linux·c++
阿七想学习33 分钟前
数据结构《Map&Set&哈希表》
java·数据结构·算法
xiaoshiguang338 分钟前
LeetCode:131. 分割回文串
java·算法·leetcode
fks1431 小时前
leetcode 115. 不同的子序列
leetcode
此刻我在家里喂猪呢1 小时前
Qt应用之MDI(多文档设计)
c++·qt
苏苏大大1 小时前
【leetcode19】三数之和==有点难还没看懂❗==
java·数据结构·算法·leetcode·职场和发展
啵啵鱼爱吃小猫咪1 小时前
Franka例程学习——joint_point_to_point_motion
c++·人工智能·python·算法·ubuntu·机器人