代码随想录算法训练营第八天|344.反转字符串 ,541. 反转字符串II ,151.翻转字符串里的单词,55.右旋转字符串

刷题建议

刷题建议与debug

  1. 代码随想录目前基本都有了视频讲解,一定要先看视频,事半功倍。
  2. 写博客,将自己的感悟沉淀下来,不然会忘
  3. 大家提问的时候,记得要把问题描述清楚,自己在哪一步遇到了问题,做了哪些调试,而不要只是把代码甩出来,这样方便大家帮忙快速定位问题。

博客内容:(博客记录以及打卡格式)

今日学习文章链接和视频链接

Python菜鸟教程

技巧总结

  1. Python切片是十分有用的,参考:https://www.liaoxuefeng.com/wiki/1016959663602400/1017269965565856
  2. Python不需要使用Temp,直接交换就行,s[left], s[right] = s[right], s[left]
  3. 字符串不可改变,如果要改变字符串的值或者切片,先将字符串转换为字符列表,最后return ''.join(res),重新返回字符串
  4. 对于字符串s = ‘abc’,如果使用s[0:999] ===> ‘abc’。字符串末尾如果超过最大长度,则会返回至字符串最后一个值,这个特性可以避免一些边界条件的处理。
  5. 使用range(start, end, step)来确定需要调换的初始位置
  6. 切片是左闭右开

344.反转字符串

自己看到题目的第一想法

  1. 双指针,使用temp交换s[i]和s[len(s)-i-1]的值

看完代码随想录之后的想法

  1. Python不需要使用temp,直接交换就行

自己实现过程中遇到哪些困难

相关题目

541. 反转字符串II

自己看到题目的第一想法

  1. 复杂逻辑判断

看完代码随想录之后的想法

  1. 直接在循环里,每次跳i += 2k,每隔 2k 个字符的前 k 个字符进行反转
  2. 剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符
  3. 剩余字符少于 k 个,则将剩余字符全部反转。
  4. 注意“技巧总结”

替换数字

自己看到题目的第一想法

  1. 将字符串转为字符数组,遍历list

看完代码随想录之后的想法

151.翻转字符串里的单词

自己看到题目的第一想法

看完代码随想录之后的想法

自己实现过程中遇到哪些困难

今日收获,记录一下自己的学习时长

55.右旋转字符串

自己看到题目的第一想法

看完代码随想录之后的想法

自己实现过程中遇到哪些困难

今日收获,记录一下自己的学习时长

你可能感兴趣的:(算法)