目录

  • leetcode 344.反转字符串
    • 1、题目
    • 2、思考
  • leetcode 541. 反转字符串 II
    • 1、题目
    • 2、思考

leetcode 344.反转字符串

1、题目

2、思考

典型的双指针解法:
一个从前往后,一个从后往前,指针对应的交换即可。

class Solution {public:void reverseString(vector<char>& s) {int start=0;int end=s.size()-1;if(end == -1) return ;while(start<=end){char tmp = s[start];s[start]=s[end];s[end] = tmp;start++;end--;}}
};

leetcode 541. 反转字符串 II

1、题目

2、思考

交换的基础部分还是和双指针有关,主要增加了逻辑上的复杂程度。
我的逻辑描述如下:
1、获取字符串长度(s_size )、并按照2k来划分组数(group_nums ),并且计算剩下来的不能组成一组的元素的个数(left_nums )
2、将翻转包装成函数,只要输入start 和end值即可
3、循环对组内的元素进行按照题目中的描述翻转,确定start 为该组第一个元素,end为start加上k,保证前k个元素翻转
4、对剩下的元素个数进行判断
5、如果剩余字符小于k个,start = (group_nums) * 2 * k,end为s最后一个字符
6、如果剩余字符小于2k个,start = (group_nums) * 2 * k,end=start+k

class Solution {public:void myreverse(string& s, int start, int end){while (start <= end){char tmp = s[start];s[start] = s[end];s[end] = tmp;start++;end--;}}string  reverseStr(string s, int k) {int s_size = s.size();int group_nums = s_size / (2 * k);int count = group_nums;int left_nums = s_size - 2 * k * group_nums;while (count > 0){int start = (count - 1) * 2 * k;int end = start + k - 1;myreverse(s, start, end);count--;}//剩下字符翻转if (left_nums < k){int start = (group_nums) * 2 * k;int end = s_size - 1;myreverse(s, start, end);}else if (left_nums < 2 * k){int start = (group_nums) * 2 * k;int end = start + k - 1;myreverse(s, start, end);}return s;}
};

leetcode 344. 反转字符串 541. 反转字符串 II 双指针解相关推荐

  1. 代码随想录算法训练营第八天|● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字符

    一.344.反转字符串 力扣 思路:很简单的一个for循环双指针,left和right交换. class Solution {public void reverseString(char[] s) { ...

  2. 代码随想录算法训练营第八天|344.反转字符串 541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串

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

  3. 备战sp23春招 day8 | 344.反转字符串 541. 反转字符串II 剑指 05.替换空格 151.翻转字符串里的单词 剑指58-II.左旋转字符串

    344 反转字符串 class Solution {public:void reverseString(vector<char>& s) {int n = s.size();int ...

  4. LeetCode 18. 四数之和 思考分析(双指针解)

    目录 需要注意的几点 1.去除剪枝操作 2.去重操作的细节 code以及效果: 题目 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b, ...

  5. LeetCode 15. 三数之和 思考分析(双指针解)

    目录 初解:未考虑去重 二解:未考虑去重位置 三解:AC 题目: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找 ...

  6. 【必备算法】字符串(反转问题):LeetCode题 344. 反转字符串,541. 反转字符串 II,917. 仅仅反转字母

    写在前面,反转数组的思路很简单,就是借助双指针不断将首尾相应位置的字符交换.Java模板如下: public void reverseArray(char[] arr) {int i = 0, j = ...

  7. 代码随想录算法训练营第08天 | LeetCode 344.反转字符串,541. 反转字符串2,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串

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

  8. Suzy找到实习了吗Day 8 | 字符串开始啦 344. 反转字符串,541. 反转字符串 II,剑指 Offer 05. 替换空格,151. 反转字符串中的单词,左旋转字符串

    这里是目录 344. 反转字符串 题目 Solution 541. 反转字符串 II 题目 Solution(v1) Solution(v2) 剑指 Offer 05. 替换空格 做题记录 151. ...

  9. leetcode——344. 反转字符串

    leetcode--344. 反转字符串 问题概述: 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入 ...

最新文章

  1. mysql数据库oem_Oracle 11gR2学习之二(创建数据库及OEM管理篇)
  2. Chrome开发,debug的使用方法。
  3. 不在JPA 的 persistence.xml 文件里配置Entity class的解决的方法
  4. Oracle adviser,Oracle10g SQL tune adviser
  5. 2014腾讯实习生招聘软件开发类附加题
  6. jquery.tmplate使用心得
  7. python install causes ModuleNotFoundError: No module named ‘_swigfaiss‘
  8. idea ssm打war包_使用idea新建springBoot+Gradle项目(超详细)
  9. Linux中,Mysql安装
  10. Qt网络编程——TCP
  11. linux目录与文件
  12. Matlab定义自定义深度学习网络中间层
  13. FileUtils工具类学习
  14. 拼多多显示内部服务器错误是怎么回事,拼多多提现出现错误怎么办?拼多多提现常见问题...
  15. python操作网页flash视频_selenium自动化过程中如何操作Flash动画
  16. win32.mak下载地址github
  17. [vue3.x]实战问题--Extraneous non-props attributes
  18. 案例教程:一步步教你ps制作二寸照片
  19. java程序设计实用教程高飞pdf_普通高等教育“计算机类专业”规划教材:Java程序设计实用教程习题集 pdf epub mobi txt 下载...
  20. 传统民俗闹新春 浙江千年古村飘“非遗年味”

热门文章

  1. CSDN主页下如何添加访客地图?
  2. odbc连接oracle失败,大神解答win7系统ODBC无法连接ORACLE的处理方案
  3. svm核函数gamma参数_非线性SVM与核函数
  4. JAVASCRIPT常用20种小技巧汇总
  5. Jquery 日历控件
  6. 轻轻松松看懂Spring AOP源码
  7. [折半搜索][has] Jzoj P4250 路径
  8. 【USACO2006 Mar】滑雪缆车 skilift
  9. 【CSS3动画】transform对文字及图片的旋转、缩放、倾斜和移动
  10. WinForm Paenl里面添加Form