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

相关推荐
沃达德软件2 分钟前
智慧警务实战模型与算法
大数据·人工智能·算法·数据挖掘·数据分析
达子6665 分钟前
git-lfs的安装配置,解决大文件存储问题
linux·c++·git
测试人社区—小叶子6 分钟前
使用开源模型微调,构建专属的测试用例生成机器人
运维·网络·c++·人工智能·机器人·自动化·测试用例
LYFlied10 分钟前
LeetCode热题Top100:核心算法思想与前端实战套路
前端·算法·leetcode·面试·算法思想·算法套路·解题公式
coderxiaohan10 分钟前
【C++】红黑树的实现
数据结构·c++·算法
纵有疾風起12 分钟前
【C++—STL】哈希表底层封装与unorderedset/unorderedmap模拟实现
开发语言·数据结构·c++·stl·哈希算法·散列表
dangdang___go13 分钟前
使用国产AI模型进行“委婉劝学程序”的模拟实现||创建可执行程序营造惊喜感
c语言·c++·豆包·劝学程序开发·创建可执行文件营造惊喜感
AganTee13 分钟前
儿童编程学什么内容?怎么学?(附3个实用工具)
算法·青少年编程·推荐算法
coderxiaohan13 分钟前
【C++】封装红黑树实现mymap和myset
数据结构·c++·算法
源来有你_20 分钟前
排序总结和练习
数据结构·算法·排序算法