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

相关推荐
CNRio3 分钟前
ZUC国密算法深度研究:原理、实现与应用(Python、Rust)
python·算法·rust
REDcker8 分钟前
C++ std::shared_ptr 线程安全性和最佳实践详解
java·jvm·c++
星期天28 分钟前
【无标题】
数据结构·c++·算法
老李四31 分钟前
Java 内存分配与回收策略
java·jvm·算法
做怪小疯子1 小时前
LeetCode 热题 100——普通数组——除自身以外数组的乘积
数据结构·算法·leetcode
明洞日记1 小时前
【数据结构手册001】从零构建程序世界的基石
数据结构·c++
冉佳驹1 小时前
C++ ——— 基本特性解析
c++·引用·内联函数·范围for·命名空间·缺省参数·auto
爱学习的小邓同学1 小时前
C++ --- 继承
开发语言·c++
xlq223222 小时前
18.Stack——queue(上)
开发语言·c++
稚辉君.MCA_P8_Java2 小时前
DeepSeek Java 插入排序实现
java·后端·算法·架构·排序算法