算法D8 | 字符串 | 344.反转字符串 541. 反转字符串II 54.替换数字 151.翻转字符串里的单词 55.右旋转字符串

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++版本:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容