栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

0459-Repeated Substring Pattern

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

0459-Repeated Substring Pattern

这个系列算是出于个人兴趣开的一个新坑吧,最近看到同学刷LeetCode算法题,就想写写那些可以一行Python代码写出来的题目,因此本专栏的文章的解题方式效率不做保证,只为追求“一行的浪漫”。

题目

题解

简单解释一下题目,给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。本题难度为Easy。

这题的思路很多,可以用KMP算法解决,不过,这里官方题解给了一种有趣的思路,假设重复的子串为 s ′ sprime s′,那么 s s s就可以写成 s ′ s ′ . . . s ′ sprime sprime ... sprime s′s′...s′,且每个子串 s ′ sprime s′的长度为 n ′ nprime n′,有 1 < = n ′ < n 1<= nprime < n 1<=n′

代码

代码实现上其实将两个s拼接到一起并从位置1开始查询,只要查询的结果不是n就实现了从ss[1:len(ss)]的子串搜索。

class Solution:
    def repeatedSubstringPattern(self, s: str) -> bool:
        return (s + s).find(s, 1) != len(s)

提交的反馈如下。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268413.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号