题目地址

https://leetcode-cn.com/problems/reverse-string-ii/

思路

先做0344.反转字符串,在做这道题目更好一些

for循环中i 每次移动 2 * k,然后判断是否需要有反转的区间

C++代码

使用C++库里的反转函数reverse

class Solution {
public:string reverseStr(string s, int k) {for (int i = 0; i < s.size(); i += (2 * k)) {// 1. 每隔 2k 个字符的前 k 个字符进行反转// 2. 剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符if (i + k <= s.size()) {reverse(s.begin() + i, s.begin() + i + k );continue;}// 3. 剩余字符少于 k 个,则将剩余字符全部反转。reverse(s.begin() + i, s.begin() + s.size());}return s;}
};

自己实现反转函数

class Solution {
public:void reverse(string& s, int start, int end) {int offset = (end - start + 1) / 2;for (int i = start, j = end; i < start + offset; i++, j--) {swap(s[i], s[j]);}}string reverseStr(string s, int k) {for (int i = 0; i < s.size(); i += (2 * k)) {// 1. 每隔 2k 个字符的前 k 个字符进行反转// 2. 剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符if (i + k <= s.size()) {reverse(s, i, i + k - 1);continue;}// 3. 剩余字符少于 k 个,则将剩余字符全部反转。reverse(s, i, s.size() - 1);}return s;}
};

笔者在先后在腾讯和百度从事技术研发多年,利用工作之余重刷leetcode,本文 GitHub:https://github.com/youngyangyang04/leetcode-master 已经收录,欢迎star,fork,共同学习,一起进步。

leetcode[541]反转字符串II/reverse string II 反转字符串考察对代码的掌控能力相关推荐

  1. LeetCode之Reverse String II

    1.题目 Given a string and an integer k, you need to reverse the first k characters for every 2k charac ...

  2. c++语言怎么实现字符串拼接,C++ string类和字符串的访问和拼接操作

    C++ 增强了对字符串的支持,除了可以使用c中的字符串,还可以使用内置的数据类型string,string类处理字符串会翻遍很多,完全可以代替C语言中的char 数组和char 指针. 使用sting ...

  3. java 补齐字符串_使用String.format()格式化字符串,java自动补全自增长字符串

    JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String format, Object... args) 使用指定的语言 ...

  4. c语言里字符串和字符串字面量,string literals(字符串字面量)

    构造一个指定字符数组类型的未命名对象,用于需要在源代码中嵌入字符串时使用. 句法 " s-char-sequence "(1)u8 " s-char-sequence & ...

  5. C#LeetCode刷题之#541-反转字符串 II(Reverse String II)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3951 访问. 给定一个字符串和一个整数 k,你需要对从字符串开头 ...

  6. LeetCode 541. Reverse String II

    题目: Given a string and an integer k, you need to reverse the first k characters for every 2k charact ...

  7. C#LeetCode刷题之#344-反转字符串​​​​​​​(Reverse String)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3933 访问. 编写一个函数,其作用是将输入的字符串反转过来. 输 ...

  8. 定间隔字符翻转(Reverse String II)

    一.学习要点: 1.主要是对剩余字符长度的考虑,大于k的时候,对前k个进行翻转:小于k的时候,对实际个数进行全翻转:本程序中翻转个数用变量x来表示: 二.代码: #include<stdlib. ...

  9. LeetCode344——Reverse String(将字符串反转)

    题目: 解法: class Solution { public:string reverseString(string s) {int i=0,j=s.size()-1;while(i<j){s ...

  10. leetcode 467. Unique Substrings in Wraparound String | 467. 环绕字符串中唯一的子字符串(动态规划)

    题目 https://leetcode.com/problems/unique-substrings-in-wraparound-string/ 题解 1.dp 超时版本 class Solution ...

最新文章

  1. 近期活动盘点:基于雷达图像预测未来降水参赛经验分享、智慧政府讲座、金融AI思享会、数据法学研讨会(11.29-11.30)
  2. C语言语句知识结构大学霸IT达人
  3. html5 项目案例_互动案例技术分析(3)
  4. mysql触发器好用吗_为什么大家都不推荐使用MySQL触发器而用存储过程?
  5. 39 MM配置-采购-采购订单-STO配置-定义工厂的装运数据
  6. python越学越糊涂_你越努力,编程水平越差!这样学 Python ,更容易成为高手!...
  7. ConcurrentHashMap!你居然不知道1.7和1.8可不一样?!
  8. Java开发 基础三十条 初学必看
  9. 数据结构1——堆栈和队列
  10. 基于RS485通讯总线的ModbusRtu协议 上位机项目源代码
  11. 《工业设计史》 绪论
  12. DSPE二硬脂酰基磷脂酰乙醇胺;磷脂用作药用辅料具有乳化、药物增溶的作用;CAS:1069-79-0
  13. kali安装磊科NW392教程
  14. 网络传输的两种方式——同步传输和异步传输的区别
  15. 在vue3中使用markdown编辑器
  16. 写字楼如何实现无线wifi短信验证登录?
  17. 生信软件(1)bioawk
  18. wangEditor上传图片事件抛出处理+解决Form-Making中无法粘贴
  19. ppt精选111个毕业答辩模板
  20. python菜鸟教程学习:数据结构

热门文章

  1. ANDROID L——Material Design详解(UI控件)
  2. 我的WCF之旅(1):创建一个简单的WCF程序(转载)
  3. OUTEROS常用命令
  4. Centos 6.5 Tengine 安装流程
  5. KV型内存数据库Redis
  6. MySQL灾备恢复在线主从复制变成主主复制及多源复制【转】
  7. 推荐系统(recommender systems):预测电影评分--构造推荐系统的一种方法:协同过滤(collaborative filtering )...
  8. typescript 第一弹
  9. 解决cdh4.5.0下 MAP任务看不到状态
  10. 客户的价值源于客户的流程