C/C++描述 LeetCode 459. 重复的子字符串 一行秒解。

   日期:2020-08-25     浏览:92    评论:0    
核心提示:C/C++描述 LeetCode 459. 重复的子字符串  大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客本文原创为亓官劼,请大家支持原创,部分平台一直在恶意盗取博主的文章!!!给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: abab输出: True解释: 可由

C/C++描述 LeetCode 459. 重复的子字符串

  大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客

本文原创为亓官劼,请大家支持原创,部分平台一直在恶意盗取博主的文章!!!

给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。

示例 1:

输入: "abab"

输出: True

解释: 可由子字符串 "ab" 重复两次构成。

示例 2:

输入: "aba"

输出: False

示例 3:

输入: "abcabcabcabc"

输出: True

解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)

题解

这里我们判断是否可以由一个子串进行重复多次来构成我们的当前字符串s,我们可以令一个新串s2 = s+s,我们在s2中查找第二个s,如果第二个s的位置为s的长度,则不可以由一个子串重复多次构成;否则可以。
因为这里如果是可以由重复子串构成的,例如s = abab,则s2 = abababab,在s2中查找第二个s应该为2,而不是第一个s完全结束的位置。

代码为:

class Solution {
public:
    bool repeatedSubstringPattern(string s) {
        return (s + s).find(s, 1) != s.size();
    }
};

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服