• 本文讲解力扣344. 反转字符串问题
  • 也就是使用双指针的思想
  • 很简单的一道题


1 题目

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题
你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。

2 示例

3 思路分析

  • 使用 前后双指针;L 在首位; R 在 尾部
  • L R 指向的字符串交换位置;
  • 随后 L 后移,R 前移;继续交换
  • 重复上述步骤,直到 L在R右边或者重合为止

4 代码

class Solution {public:void reverseString(vector<char>& s) {int R = s.size() - 1;int L = 0;while (L < R) {s[L] ^= s[R];s[R] ^= s[L];s[L] ^= s[R];L ++;R --;}}
};

双指针算法 | 力扣344. 反转字符串相关推荐

  1. 力扣344. 反转字符串(JavaScript)

    var reverseString = function(s) {//定义两个指针let l=0let r=s.length-1while(l<r){//交换两个指针的数据let p=s[l]s ...

  2. 力扣 345. 反转字符串中的元音字母

    题目 给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串. 元音字母包括 'a'.'e'.'i'.'o'.'u',且可能以大小写两种形式出现. 示例 输入:s = "hel ...

  3. 力扣541. 反转字符串 II(JavaScript)

    var reverseStr = function(s, k) {let n=s.lengthlet arr=Array.from(s)//每次跳转2k个数for(let i=0;i<n;i+= ...

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

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

  5. leetcode 344. 反转字符串 541. 反转字符串 II 双指针解

    目录 leetcode 344.反转字符串 1.题目 2.思考 leetcode 541. 反转字符串 II 1.题目 2.思考 leetcode 344.反转字符串 1.题目 2.思考 典型的双指针 ...

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

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

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

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

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

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

  9. LeetCode 344. 反转字符串【字符串,双指针】

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

最新文章

  1. 判断数组中有该元素?
  2. 洛谷——P2708 硬币翻转
  3. python中自定义模块导入飘红_hadoop streaming 中跑python程序,自定义模块的导入
  4. java中gettext方法_深入理解Java中方法的参数传递机制
  5. Liferay中配置MySQL数据库的两种方法
  6. 在c语言中保留35位小数,C语言程序设计复习题(供学有余力学生练习)(35页)-原创力文档...
  7. 用QT制作一个抽奖器的总结
  8. arm实验使用keil自带的MDK仿真教程
  9. Linux黑客基础01篇
  10. Python使用matplotlib绘制龟兔赛跑中兔子和乌龟的行走轨迹
  11. Revit各专业协同工作—链接与工作集
  12. sass @media
  13. 今天上班穿了一只拖鞋和一只凉鞋
  14. java实现excel导入数据库
  15. 我在蚂蚁金服做SRE
  16. 谈谈北京的租房和买房
  17. 公司内部打印机自动安装批处理文件
  18. 自考电子科大计算机考研,付出终有回报!自考本科生跨考考研,成功考入名校电子科技大学...
  19. 13.学习Camera之——Android Treble架构解析
  20. 代码随想录训练营day35

热门文章

  1. 一和零(二维01背包)
  2. [ARM-assembly]-A64的load/store指令总结
  3. 如何使用ADLab搭建活动目录实验环境来练习渗透测试技术
  4. 4.API的调用过程(系统服务表)
  5. JavaScript 特有奇葩问题“字符串类型与数字类型混乱”的分析与解决,与类型转换
  6. 1.11实例:保存图书信息
  7. MySQL知识点复习
  8. Python爬取京东商品信息以及评论存进MySQL
  9. 1.2 进阶-对称的二叉树
  10. 用漫画的方式理解共享锁和排他锁