博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
阅读量:5102 次
发布时间:2019-06-13

本文共 1211 字,大约阅读时间需要 4 分钟。

目录

题目描述:

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

示例 1:

输入:     "abab"输出:     True解释:     可由子字符串 "ab" 重复两次构成。

示例 2:

输入:     "aba"输出:     False

示例 3:

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

解法:

class Solution {public:    vector
getFactor(int num){ vector
res; res.push_back(1); for(int i = 2; i <= num/2; i++){ if(num%i == 0){ res.push_back(i); } } return res; } bool canRepeat(const string& s, int sz, int c){ if(sz%c != 0){ return false; } string pre = s.substr(0, c); for(int i = c; i < sz; i += c){ if(pre != s.substr(i, c)){ return false; } } return true; } bool repeatedSubstringPattern(string s) { int sz = s.size(); if(sz <= 1){ return false; } vector
lst = getFactor(sz); for(int c : lst){ if(canRepeat(s, sz, c)){ return true; } } return false; }};

转载于:https://www.cnblogs.com/zhanzq/p/10593301.html

你可能感兴趣的文章
java aop面试_我想知道Spring在面试中应该怎么介绍,以及如何介绍他的aop?
查看>>
kettle java获取变量_Kettle的第二个实践--数据获取并转换
查看>>
java oom产生原因_OOM 原因及解决方案总结
查看>>
java生成流水号案例_java中生成流水号的一个例子(使用关系型数据库)
查看>>
java读取键盘方向键_我想实现当按下键盘的方向键,所画的红点会随着移动,请帮忙看下下...
查看>>
jenkins构建java项目_使用jenkins+gitlab构建一个简单的java项目
查看>>
java scp client_SCPClient远程拉取文件
查看>>
java编程数据溢出问题_poi解决java导出excel海量数据内存溢出问题详解
查看>>
blog.java123_[Java123] JavaBean
查看>>
python keyboard方法_【Python】对字典列表进行去重追加
查看>>
python 时序分析_【时序分割】2017KDD时序分割聚类TICC代码分析
查看>>
java版flashplayer下载安装_mac版flash player
查看>>
java 二维数组元素转换为空格_数组中重复的数字、二维数组中的查找、替换空格--Java知识点解析...
查看>>
java findall_从python到Java的re.findall匹配,模式 - java
查看>>
php加图片源码_php给现有的图片加文字水印代码
查看>>
php 向数据表添加数据_php向表中插入数据
查看>>
php外部,PHP 的外部变量
查看>>
php getticket,easyWechat 处理ticket以及事件推送
查看>>
java获取hive表所有字段,Hive Sql从表中动态获取空列计数
查看>>
java的find怎么使用,新手使用find()有关问题求助
查看>>