LeetCode每日一题——重复的子字符串

题目要求:

给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。

示例 1:

复制代码
输入: s = "abab"
输出: true
解释: 可由子串 "ab" 重复两次构成。

示例 2:

复制代码
输入: s = "aba"
输出: false

示例 3:

复制代码
输入: s = "abcabcabcabc"
输出: true
解释: 可由子串 "abc" 重复四次构成。 (或子串 "abcabc" 重复两次构成。)

代码实现:

bool repeatedSubstringPattern(char* s) {

int n = strlen(s);//获取字符串s的长度

for (int i = 1; i * 2 <= n; ++i) {//子字符串最少重复两次得到原字符串,防止越界访问

if (n % i == 0) {

bool match = true;//对match初始化为true

for (int j = i; j < n; ++j) {

if (s[j] != s[j - i]) {

match = false;

break;//不相等时跳出内层循环,避免无效试错

}

}

if (match) {

return true;//此语句执行后,则不会执行之后的程序

}

}

}

return false;//所有子串尝试后都不匹配,返回false

}

作者:力扣官方题解

来源:力扣(LeetCode)

相关推荐
hadage2339 分钟前
--- 数据结构 AVL树 ---
数据结构·算法
liu****10 分钟前
8.list的使用
数据结构·c++·算法·list
立志成为大牛的小牛13 分钟前
数据结构——二十六、邻接表(王道408)
开发语言·数据结构·c++·学习·程序人生
阿拉丁的梦21 分钟前
后期材质-屏幕冲击径向模糊
算法·材质
weixin_429630261 小时前
实验二-决策树-葡萄酒
算法·决策树·机器学习
茉莉玫瑰花茶2 小时前
floodfill 算法(dfs)
算法·深度优先
CoderCodingNo2 小时前
【GESP】C++五级考试大纲知识点梳理, (5) 算法复杂度估算(多项式、对数)
开发语言·c++·算法
学编程就要猛2 小时前
数据结构初阶:时间和空间复杂度
数据结构
MYX_3093 小时前
第三章 线型神经网络
深度学习·神经网络·学习·算法
坚持编程的菜鸟4 小时前
LeetCode每日一题——三角形的最大周长
算法·leetcode·职场和发展