LeetCode(344)反转字符串
今天是小呆刷题的第8天,今天的题目是:力扣(LeetCode)的第344题,反转字符串
题目要求
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组
s
的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用
O(1)
的额外空间解决这一问题。
示例:
1 |
|
提示:
1 <= s.length <= 10^5
s[i]
都是ASCII码表中的可打印字符
解题思路
这道题,由于题目要求原地修改数组,小呆首先想到了前几天一直在用的双指针算法。具体思路如下:
- 设置
left
,right
两个指针,一个指向数组头部,一个指向数组尾部 - 循环条件是
left <= right
- 设置一个
temp
变量,用于left
和right
交换时的中转站 - 交换
left,right
,让left
往后移一步,right
往前移一步
具体过程用gif图辅助理解一下:
1 |
|
小结
果然只有不断的练习,才能对一些算法形成条件反射。比如原地修改类的题型,小呆就会首先想到双指针算法。加油加油加油!坚持下去,努力终有回报~
引用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小呆&小萌的情侣博客!
评论