代码随想录第八天| 字符串总结 双指针总结

发布时间 2023-11-02 22:28:46作者: fires610

1. 字符串总结1. Python对于字符串的处理       

python的字符串是immutable的,同时其也不像c++或c需要特殊的停止符来表示终止:由于python字符串不可变的特性,python底层会记录每个字符串的长度,所以其不需要终止符。

2. 要不要使用库函数        如果题目的关键部分可以使用库函数快速简单的解决,并且你还不知道库函数具体的实现原理,那建议不要使用库函数,因为这就是去了题目考察的意义,你不会因为这道题AC了而变得更强。如果你已经完全能够复现函数了(如之前的reserve()函数,那直接调用库函数是完全没问题的,毕竟在理解的基础上效率优先)

3. 双指针法在字符串中的应用(python均需将字符串转为list)使用双指针法反转字符串(leetcode 344)使用双指针替换字符串内的元素(使用python时需要将字符串转化为列)(替换空格)[预先给数组扩容带填充后的大小,然后在从后向前进行操作。]针对数组删除问题(leetcode 27, 15)

4. 反转字符串        如leetcode 541,在344反转字符串的基础上增添了若干个条件,需要较强的思维逻辑能力。但同时也可以使用while来做文章。正如随想录中所写的,当需要固定规律一段一段去处理字符串的时候,要想想在在for循环的表达式上做做文章。        再像leetcode151,我们需要首先对字符串进行整体反转,然后在此基础之上排除多余空格,最后再对单个单词进行反转。

 

 

2. 双指针法总结        从使用的角度来说,双指针法分为快慢指针、左右指针、逆序指针(我编的,不知道其专有名词)大部分双指针法都可以把o(n2)的复杂度降为o(n)。我下面将把之前做过的题目与对应的指针进行分类。快慢指针:删除元素,判断列表是否有闭环,删除列表倒数第n个节点,反转链表左右指针:字符串反转,数组平方后排序,n数之和逆序指针:字符串替换元素

 

2023-11-02     22:24:03