代码随想录算法训练营day9:字符串part02
今日任务
●151.翻转字符串里的单词
●卡码网:55.右旋转字符串
●28. 实现 strStr()
●459.重复的子字符串
●字符串总结
●双指针回顾
151.翻转字符串里的单词
不要使用辅助空间,空间复杂度要求为O(1)。意思要原地反转吗?
思路:双指针
给pre, suffix 两个变量存储前后的连个单词。
但是终止条件?左右指针相遇?
看上去我想复杂了。
卡码网:55.右旋转字符串
对python来说,好像就是切分加拼接。
28. 实现 strStr()
KMP
先吸收一点儿吧。
算法要解决的问题就是:
当出现字符串不匹配时,可以记录一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配。
next 数组就是一个前缀表(prefix table).
前缀表是用来回退的,它记录了模式串和主串不匹配的时候,模式串应该从哪里开始重新匹配。
最长公共前后缀
文章中字符串的前缀是指不包含最后一个字符的所有以第一个字符开头的连续子串。
后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串。
459.重复的子字符串
暂时跳过