力扣459 重复的字符串

复制代码
bool repeatedSubstringPattern(char * s) {
    int n = strlen(s);
    for (int i = 1; i <= n / 2; i++) {
        if (n % i == 0) {  // 检查当前长度是否能整除原字符串长度
            bool match = true;
            char * substring = s;  // 获取子串的起始位置
            for (int j = i; j < n; j++) {
                if (s[j] != s[j % i]) {  // 检查子串重复多次是否等于原字符串
                    match = false;
                    break;
                }
            }
            if (match) {
                return true;
            }
        }
    }
    return false;
}
python 复制代码
class Solution:
    def repeatedSubstringPattern(self, s: str) -> bool:
        a = len(s)
        for i in range(1, a // 2 + 1):
            if a % i == 0:  # 检查当前长度是否能整除原字符串长度
                substring = s[:i]  # 获取子串
                if substring * (a // i) == s:  # 检查子串重复多次是否等于原字符串
                    return True
        return False  # 如果没有找到合适的子串,返回 False
#1.// 取商  % 求余
#2.s[:i] 通过切片获取子串
#3.substring * (a // i) ==>字符串拼接
相关推荐
练习时长一年几秒前
在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·leetcode
资深web全栈开发11 分钟前
LeetCode 3573. 买卖股票的最佳时机 V - 动态规划解法详解
算法·leetcode·动态规划
leiming613 分钟前
C++ 01 函数模板
开发语言·c++·算法
Chen--Xing14 分钟前
LeetCode LCR 119.最长连续序列
c++·python·算法·leetcode·rust
金枪不摆鳍17 分钟前
算法2-链表
数据结构·算法·链表
yeshihouhou18 分钟前
redis数据分片算法
redis·算法·哈希算法
李余博睿(新疆)21 分钟前
c++经典练习题-分支练习(1)
数据结构·c++·算法
xu_yule29 分钟前
算法基础-动态规划
算法·动态规划
自然常数e39 分钟前
深入理解指针(7)
c语言·数据结构·算法·visual studio
张人玉1 小时前
西门子PLC地址知识点
算法·西门子plc