344. 反转字符串
题目链接:https://leetcode.cn/problems/reverse-string/
0x1 看到题目的第一想法
- 找到n/2的地方,交换i和n-1-i
0x2 自己实现过程中遇到哪些困难
- No
0x3 今日学习的文章链接,或者视频链接
0x4 看完代码随想录之后的想法
- 不需要找n/2这个值,直接定义双指针,从两端向中间移动进行交换
0x5 今日收获,记录一下自己的学习时长
- 原地反转字符串
- 两端双指针
- 15min
541. 反转字符串 II
题目链接:https://leetcode.cn/problems/reverse-string-ii/
0x1 看到题目的第一想法
- 题目在说什么,好不清楚
0x2 自己实现过程中遇到哪些困难
- 跟着实例报错缝缝补补
- python中的str,不能对元素进行复制操作
1
2s = "abdx"
s[3] = 'a' 会报错
0x3 今日学习的文章链接,或者视频链接
0x4 看完代码随想录之后的想法
- 一样的解法,但是没有利用python特性,写的太复杂了
- for循环
- 切片:,如果超过了本来的长度,会自动回到最后一个,就不需要考虑特别多的边界(缝缝补补)
0x5 今日收获,记录一下自己的学习时长
- 字符串str操作
- 数组
- 45min
剑指 Offer 05. 替换空格
题目链接:https://leetcode.cn/problems/ti-huan-kong-ge-lcof/
0x1 看到题目的第一想法
- 找到有空格的地方换一下
0x2 自己实现过程中遇到哪些困难
- 不知道python怎么操作str类型的数据
0x3 今日学习的文章链接,或者视频链接
0x4 看完代码随想录之后的想法
- 暴力操作
1
'%20'.join(s.split(' '))
- 把空格替换成’%20’,需要从后往前寻找空格,然后进行替换,才不会产生O(n^2)的时间复杂度
- 找到空格的位置,利用切片进行字符串的组合
0x5 今日收获,记录一下自己的学习时长
- enumerate(s)
- 会返回两个值 i, e,索引,以及对应索引上的值
- “”.join(list)
- 把list转str
- 1h
151. 翻转字符串里的单词
题目链接:https://leetcode.cn/problems/reverse-words-in-a-string/
0x1 看到题目的第一想法
- 各种字符串操作大杂烩
0x2 自己实现过程中遇到哪些困难
- 删除中间的重复空格
- 每个单词反转
- 空格’ ‘,疏忽大意错写成’’
0x3 今日学习的文章链接,或者视频链接
0x4 看完代码随想录之后的想法
- 反转单词顺序
- 整体反转+局部反转
- 删除空格我写复杂了
- 用双指针删除前面和后面的空格
- 删除中间的重复空格, 有点技巧,巧妙运用elif(tmp[-1]!=’ ‘)这个判断来保留一个’ ‘, 不要其他重复空格
- 每个单词反转
- 要找到空格和最后的位置,然后进行反转
- 两层while
- 要找到空格和最后的位置,然后进行反转
0x5 今日收获,记录一下自己的学习时长
- 字符串str各种操作
- 双指针
- 反转
- 删除
- 1.5h
剑指Offer58-II. 左旋转字符串
题目链接:https://leetcode.cn/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/
0x1 看到题目的第一想法
- python切片直接移走
0x2 自己实现过程中遇到哪些困难
- No
0x3 今日学习的文章链接,或者视频链接
0x4 看完代码随想录之后的想法
- 是有技巧的
- 整体反转+局部反转
- 反转区间为前n的子串;反转区间为n到末尾的子串;反转整个字符串
0x5 今日收获,记录一下自己的学习时长
- 反转移动技巧
- 整体反转+局部反转
- 30min
待重点复习
ALL
总结
- 字符串操作
- 反转
- 局部反转 + 整体反转
- 删除
- 双指针
- 移除指定元素
- 反转