首页 > 其他分享 >541. Reverse String II

541. Reverse String II

时间:2024-07-07 11:30:54浏览次数:15  
标签:reverse Reverse int II 541 characters than string

Given a string s and an integer k, reverse the first k characters for every 2k characters counting from the start of the string.

If there are fewer than k characters left, reverse all of them. If there are less than 2k but greater than or equal to k characters, then reverse the first k characters and leave the other as original.

Example 1:

Input: s = "abcdefg", k = 2
Output: "bacdfeg"

Example 2:

Input: s = "abcd", k = 2
Output: "bacd"

Constraints:

  • 1 <= s.length <= 104
  • s consists of only lowercase English letters.
  • 1 <= k <= 104

1.使用自己定义的reverse函数

class Solution {
public:
    string Reverse(string& s,int begin,int end){
        for(int i=begin,j=end-1;i<j;i++,j--){
            swap(s[i],s[j]);
        }
        return s;
    }
    string reverseStr(string s, int k) {
        int length=s.size();
        for(int i=0;i<length;i+=2*k){
            if(i+k<=length)Reverse(s,i,i+k);
            else Reverse(s,i,length);
        }
        return s;
    }
};

注意:

        1.定义自己的reverse函数,需要用&符号,否则无法改变字符串

        2.Reverse函数中i,j的起始位置需要注意

2.使用C++的库函数reverse

class Solution {
public:
    string reverseStr(string s, int k) {
        int length=s.size();
        for(int i=0;i<length;i+=2*k){
            if(i+k<=length)reverse(s.begin()+i,s.begin()+i+k);
            else reverse(s.begin()+i,s.end());
        }
        return s;
    }
};

注意:

        1,C++库的reverse函数的输入

        2.整体思路:如果剩余部分大于等于k,前k个反转,小于k,全部反转

标签:reverse,Reverse,int,II,541,characters,than,string
From: https://blog.csdn.net/2301_80161204/article/details/140243303

相关文章

  • [SNCPC2024] 2024 年陕西省大学生程序设计 J题猜质数II 题解
    题目链接:CF或者洛谷PS:CF的得等上gym。前提说明其实在上个月就见到这题了,当时很想做这题,结果找不到做题链接,也不知道出处,原来是陕西省赛的捧杯题。个人评价觉得是一道很不错的题,难度适中。讲解其实题解写的挺不错的,比很多比赛的题解写的详细许多了。这里站在我的角度分......
  • 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点 、 19.删除链表的倒数第N个
    24.两两交换链表中的节点 题目:.-力扣(LeetCode)思路:这题关键是要每次进行两个结点的操作,并且每次都要保存其前结点,做题思路比较清晰,但是总是处理不好边界问题,总是越界。代码:/***Definitionforsingly-linkedlist.*structListNode{*intval;*List......
  • 代码随想录刷题day 4 | 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题
    24.两两交换链表中的节点迭代的版本:最重要的就是要知道循环变量怎么取,对于这道题,我们只需要存储需要交换的两个节点的前一个节点即可,只有当这个节点后面有两个节点时才进入循环,其实把握住这一点之后这题就非常容易了。递归的版本:这道题用递归做简直不要太简单,首先明白递归结束......
  • iOS开发-图片UIImage
    UIImage和UIImageView是iOS开发中常用的两个类,分别用于表示图像数据和显示图像。UIImageUIImage是一个表示图像数据的类,可以从文件、数据、图像资源库等加载图像。UIImage支持多种图像格式,包括PNG、JPEG、GIF等。创建UIImage从文件创建UIImage*image=[UIImage......
  • 计算器III
    给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。你可以假设给定的表达式总是有效的。所有中间结果将在 [-231,231 -1] 的范围内。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。 提示:1<=......
  • IIC通信协议
    一、IIC(Inter-IntegratedCircuit)通信的基本概念:硬件结构:只需要两根线:SCL(串行时钟线)和SDA(串行数据线)可以连接多个设备,每个设备都有唯一的地址(7bit)通信原理:主从通信:一个主设备,多个从设备同步通信:由SCL线提供时钟信号串行、半双工:数据可以双向传输,但同一时刻只能单向基......
  • 树莓派学习笔记18:IIC驱动_PCA9685(16路舵机驱动模块)
    今日继续学习树莓派4B4G:(RaspberryPi,简称RPi或RasPi)本人所用树莓派4B装载的系统与版本如下: 版本可用命令(lsb_release-a)查询:​​ Python版本3.7.3:​​ IIC驱动_PCA9685(16路舵机驱动模块)文章提供测试代码讲解,整体代码贴出、测试效果图目录 开启树......
  • 代码随想录算法训练营第五十三天 | 739.每日温度 496.下一个更大的元素I 503.下一个更
    739.每日温度题目链接文章讲解视频讲解单调栈适合的场景:求当前元素左面或右面第一个比它大或小的元素单调栈里存什么元素只要存下标就可以了,比较元素时可以通过下标取元素单调栈是单调增还是单调减(从栈顶到栈底)使用单调增的单调栈解题步骤:遍历数组,当栈空时直接入栈......
  • MAX98357、MAX98357A、MAX98357B小巧、低成本、PCM D类IIS放大器,具有AB类性能中文说明
    前言:MAX98357A支持标准I2S数据,MAX98357B支持左对齐数字音频数据。两个版本均支持8通道TDM音频数据。IIS数字功放MAX98357开发板/评估系统MAX98357WLP-9(1.347x1.437mm)封装的外观和丝印AKMMAX98357TQFN-16-EP(3x3mm)封装的外观和丝印AKK引脚说明WLP......
  • IIS数字功放MAX98357开发板/评估系统
    前言MAX98357中文介绍请访问下行链接MAX98357、MAX98357A、MAX98357B小巧、低成本、PCMD类IIS放大器,具有AB类性能中文说明规格书一般描述MAX98357开发板(DEV板)是一个完全组装并经过测试的PCB,用于评估MAX98357I2S数字输入D类功率放大器。DEV板采用2.5V至5.5V单直......