344.反转字符串
建议: 本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用 库函数,什么时候 不用库函数。题目链接/文章讲解/视频讲解。
双指针left, right = 0, n-1,同时向中间移动,交换彼此的元素即可。
Python版本:
C++版本:
学习了双指针一起出现在forloop条件中的写法,以下两种写法一样的。
a/b: 返回整数部分
(double) a/b: 返回精确答案
541. 反转字符串II
建议:本题又进阶了,自己先去独立做一做,然后在看题解,对代码技巧会有很深的体会。题目链接/文章讲解/视频讲解。
Python版本:
这个题选择了用slicing来实现,也可以使用自定义的reverse (例如344题的双指针实现)。
C++版本:
卡码网 54.替换数字
KamaCoder是ACM模式编程,和Leetcode不太一样。练习一下ACM模式。
建议:对于线性数据结构,填充或者删除,后序处理会高效的多。好好体会一下。题目链接/文章讲解。
Python单指针:
C++双指针:
151.翻转字符串里的单词
建议:这道题目基本把 刚刚做过的字符串操作 都覆盖了,不过就算知道解题思路,本题代码并不容易写,要多练一练。 题目链接/文章讲解/视频讲解。
Python调库:
调库练习不了底层算法,具体实现参考C++双指针代码。
C++双指针:
学习了形参的使用,string& 代表在传入的参数s上修改。适当的打包函数可以让整个结构更清晰。
卡码网 55.右旋转字符串
建议:题解中的解法如果没接触过的话,应该会想不到。题目链接/文章讲解。
Python版本:
C++版本: