leetcode字符串(二)-重复的子字符串
题目
给定一个非空的字符串 s
,检查是否可以通过由它的一个子串重复多次构成。
示例 1:
输入: s = "abab" 输出: true 解释: 可由子串 "ab" 重复两次构成。
示例 2:
输入: s = "aba" 输出: false
示例 3:
输入: s = "abcabcabcabc" 输出: true 解释: 可由子串 "abc" 重复四次构成。 (或子串 "abcabc" 重复两次构成。)
思路
如果一个字符串是由他的子字符串构成的,举例:s='abcabc'
把两个s拼在一起会发现如果是由子字符串构成的,那中间那部分必定是s
当然,我们在判断 s + s 拼接的字符串里是否出现一个s的的时候,要刨除 s + s 的首字符和尾字符,这样避免在s+s中搜索出原来的s,我们要搜索的是中间拼接出来的s。
这里需要借助Python中的find函数,find函数返回的子字符串的首字母在字符串的下标值
代码
class Solution:
def repeatedSubstringPattern(self, s: str) -> bool:
n = len(s)
if n ==1:
return False
ss = (s+s)[1:-1]
if ss.find(s) != -1:
return True
else:
return False
原文地址:https://blog.csdn.net/weixin_40198632/article/details/143501402
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!