代码随想录算法训练营第八天 344. 反转字符串、541. 反转字符串II、剑指Offer 05.替换空格、151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串。
代码随想录算法训练营第八天| 344. 反转字符串、541. 反转字符串II、剑指Offer 05.替换空格、151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串。
344. 反转字符串
题目链接:力扣题目链接
文章讲解:代码随想录(programmercarl.com)
视频讲解:字符串基础操作! | LeetCode:344.反转字符串
状态:AC
思路

相同颜色的互换位置即可,即i与len(s) - 1 - i交换。i的范围到len(s)/2
代码
1 | |
541. 反转字符串II
题目链接:力扣题目链接
文章讲解:代码随想录(programmercarl.com)
视频讲解:字符串操作进阶! | LeetCode:541. 反转字符串II
状态:AC
思路
.png)
- 如图,图中相同颜色的部分代表一个
2k段,循环条件:for i := 0; i < len(s); i += 2 * k。 - 相同颜色下,分为两段,前
k段和后k段。前k段进行反转,后k段直接拼接。如果某一段到达了字符串s尾部,需要停止。 - 由于Go语言的字符串不可变,所以新建一个变量,一点点“组装”成最终结果。前
k段翻转直接进行反向遍历。
代码
1 | |
剑指Offer 05.替换空格、LCR22.路径加密
题目链接:力扣题目链接
文章讲解:代码随想录(programmercarl.com)
状态:AC
思路
直接投机取巧,新建一个字符串newString,遍历字符串s,如果s[i] == '.',在newString += ' ',否则newString += s[i]
代码
1 | |
151.翻转字符串里的单词
题目链接:力扣题目链接
文章讲解:代码随想录(programmercarl.com)
视频链接:字符串复杂操作拿捏了! | LeetCode:151.翻转字符串里的单词
状态:AC
思路
- 使用双指针,
left指针指向的是单词的起始位置,遍历字符串用的i找到单词末尾。 - 新建一个字符串数组
words,将每个单词加入到其中 - 定义新字符串
newString,将words中每个单词拼接到newString中(反向遍历words),并且如果不是最后一个单词则再加一个空格。
代码
1 | |
Offer58-II.左旋转字符串
题目链接:力扣题目链接
文章讲解:代码随想录(programmercarl.com)
状态:AC
思路
方法一
直接拼接
方法二

代码
1 | |
1 | |
代码随想录算法训练营第八天 344. 反转字符串、541. 反转字符串II、剑指Offer 05.替换空格、151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串。
https://promisewang.github.io/post/6416b651.html