zoukankan      html  css  js  c++  java
  • 刷题-力扣-541. 反转字符串 II

    541. 反转字符串 II

    题目链接

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/reverse-string-ii
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    题目描述

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

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

    示例 1:

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

    示例 2:

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

    提示:

    • 1 <= s.length <= 104
    • s 仅由小写英文组成
    • 1 <= k <= 104

    题目分析

    1. 根据题目描述,每2k个字符反转前k个,在示例一中第一个2k个字符是“abcd”,反转前k个后为“bacd”
    2. 模拟题目描述编写代码

    代码

    class Solution {
    public:
        string reverseStr(string s, int k) {
            if (k < 2) return s;
            int sLen = s.length();
            for (int i = 0; i < sLen; i += 2 * k) {
                reverse(s.begin() + i, s.begin() + min(i + k, sLen));
            }
            return s;
        }
    };
    
  • 相关阅读:
    理解Restful 架构
    CLR 异步函数
    CLR 线程池
    CLR 线程基础
    CLR 序列化
    CLR 垃圾回收和应用程序集
    CLR的垃圾回收机制
    定制特性
    枚举和迭代器
    接口
  • 原文地址:https://www.cnblogs.com/HanYG/p/15166357.html
Copyright © 2011-2022 走看看