文章目录

  • 1.题目描述
  • 2.解题思路
  • 3.代码实现

1.题目描述

    给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。
    如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

示例 1:
输入:s = "abcdefg", k = 2
输出:"bacdfeg"示例 2:
输入:s = "abcd", k = 2
输出:"bacd"

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-string-ii

2.解题思路

    这一题我们在遍历字符串的时候,可以一次性让i变成i+2k,这时候判断剩下的字符有没有k个,如果有k个的话,我们就把前面2k个字符进行reverse,然后继续进行循环的continue,没有的话就把剩下的不足k个字符全部reverse。

3.代码实现

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);continue;}reverse(s.begin() + i, s.begin() + s.size());}return s;}
};

算法(字符串)——反转字符串II相关推荐

  1. 初级算法_反转字符串

    LeetCode_初级算法_反转字符串 源 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 ...

  2. 编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略

    编程笔试(解析及代码实现):字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略 目录 字符串反转(字符串逆序输出)代码实现十多种方法对比(解析思路及其耗费时间)详细攻略 ...

  3. swift算法:反转字符串

    1.描述 编写一个函数,其作用是将输入的字符串反转过来,输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用O(1)的额外空间解决这一问题 你 ...

  4. 初级算法-12.反转字符串

    题目描述: 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问 ...

  5. 算法(字符串)——反转字符串

    文章目录 1.题目描述 2.解题思路 3.代码实现 1.题目描述     编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出.不要给另外的数组分配额外的空间,你必须原地 ...

  6. 简单记录牛客top101算法题(初级题C语言实现)判断回文字符串 反转字符串 合并两个有序的数组

    1. 判断是否为回文字符串   给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文.如果是回文请返回true,否则返回false.   字符串回文指该字符串正序与其逆序逐字符一致. // ...

  7. day11 反转字符串||反转字符串2

    力扣 思路 定义两个指针 一个从字符串前面 一个从字符串后面  两个指针同时向中间移动 并交换元素 var reverseString = function(s) {//Do not return a ...

  8. [字符串]反转字符串

    一.题目描述 原文链接:344. 反转字符串 具体描述: 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组. ...

  9. 算法--------数组------反转字符串中的元音字母

    编写一个函数,以字符串作为输入,反转该字符串中的元音字母.示例 1:输入: "hello" 输出: "holle" 示例 2:输入: "leetcod ...

最新文章

  1. Socket:UDP协议小白
  2. 微信电视来了 微信遥控传屏弹幕统统有
  3. Spring boot 配置单元测试
  4. 一个在windowsXP启动linux as(grub引导)的简单方法
  5. 关于Windows Firewall的一些资料
  6. Django Cache缓存系统介绍及Memcached使用
  7. javascript之parseInt的用法分析
  8. 计算机领域认知个人陈述,计算机专业个人陈述十九
  9. keepalived(4)——演练故障出现时keepalived的状态
  10. 被忽视的ArrayList,你知道多少
  11. asm和file system之间数据文件的转换
  12. 格式化输出的函数printf()用法
  13. OpenCV入门: Mat数据类型及其转换,访问
  14. 从零实现深度学习框架——动手实现逻辑回归
  15. 牛客网编程题输入输出
  16. 计算机更改刷新频率,电脑屏幕刷新率怎么调节?怎么更改电脑屏幕刷新率?
  17. C语言程序设计第五次作业——循环结构(1)
  18. 电脑计算器所有快捷键
  19. 04-什么是阶梯式加压测试?
  20. Mysql 网站大全

热门文章

  1. chrome应用商店打不开,怎么下载vue-devtools并安装呢?
  2. python读取文本两个数字的成语_【十分钟Python知识点】让文本数据更加生动——词云工具推荐...
  3. CPU切换线程的相关理解
  4. python-字典dict_KeyError: *****,解决方案
  5. kafka系列(五)—— broker存储结构
  6. NVIDIA显卡算力查询
  7. 联想浏览器怎么设置使用Java_eclipse 联想功能设置技巧
  8. 使用adb命令安装apk到电视
  9. c语言分数怎么化成整数,分数怎么化成整数 分数转化方法
  10. raft java库_结合consul raft库理解raft