力扣代码学习日记四

这篇具有很好参考价值的文章主要介绍了力扣代码学习日记四。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Problem: 459. 重复的子字符串

思路

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

示例 1:

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

示例 2:

输入: s = "aba"
输出: false

示例 3:

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

提示:

1 <= s.length <= 104
s 由小写英文字母组成

解题方法

可以考虑将原始字符串看作是由其最小循环节组成的。如果存在一个子串,将这个子串重复多次后可以得到原始字符串,则原始字符串可以由这个子串重复构成。

复杂度

时间复杂度:

时间复杂度为O(n * n//2),即O(n^2),其中n是字符串s的长度。

空间复杂度:

该算法的时间复杂度为O(n^2),空间复杂度为O(1)。文章来源地址https://www.toymoban.com/news/detail-826511.html

代码

class Solution(object):
    def repeatedSubstringPattern(self, s):
        n = len(s)
        for i in range(1,n//2+1):
            if n%i == 0:
                sub_str=s[:i]
                if sub_str * (n//i) == s:
                    return True
        return False

到了这里,关于力扣代码学习日记四的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 程序员技能与成长:如何学习新的编程语言和代码规范与单元测试

    一名软件工程师的最大挑战就是使自己的技术栈跟得上技术的发展,而在这个技术飞速发展的时代,保证自己不被淘汰的唯一方法就是不断学习。 那么,程序员需要掌握多门编程语言吗?很多初学者都被这个问题所困扰。Google研究总监 Peter Norvig曾就这个问题给出自己的观点

    2024年04月10日
    浏览(45)
  • 【华为OD机试真题 Python语言】448、结对编程 | 机试真题+思路参考+代码解析(C卷)

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用Python语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习 🎃题目描述

    2024年02月04日
    浏览(46)
  • 简单编程代码表白c语言,简单编程代码入门图标

    大家好,给大家分享一下简单编程代码表白手机版,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 大家好,本文将围绕python程序编程代码大全展开说明,python编程游戏代码是一个很多人都想弄明白的事情,想搞清楚python代码大全简单需要先了解以下几个事

    2024年02月04日
    浏览(44)
  • Go语言——【高质量编程 | 代码规范】

    作者 :非妃是公主 专栏 :《Golang》 博客主页 :https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩 高质量编程,就是指编写的代码能够达到正确可靠的同时,具备简洁清晰、结构明了等特点,可以让团队成员很快的上手。具体来说,有

    2024年02月01日
    浏览(92)
  • Python编程语言简介

    Python 是荷兰人 Guido van Rossum (吉多·范罗苏姆,中国程序员称其为“龟叔”)在 1990 年初开发的一种解释型编程语言。 Python 的诞生是极具戏曲性的,据 Guido 自述记载,Python 语言是在圣诞节期间为了打发无聊的时间而开发的,之所以会选择 Python 作为该编程语言的名字,是因

    2024年02月07日
    浏览(51)
  • 编程语言与Python介绍

    计算机存储数据格式 原理: 计算机的工作需要基于电,而电信号只有高低电频两种状态。将高低电频命名为0和1(也就意味着计算机只识别0和1的二进制数)所以计算机才能识别诸多信息,原因是使用了二进制数进行排列组合 存储单位: 二进制数使用比特位(bit)表示:一

    2024年02月04日
    浏览(44)
  • 极语言中文编程_学习笔记

    更多有关极语言中文编程的信息请看文件夹下的sec.htm或者官网的编程说明书 http://sec.yihuolao.com/sec.htm 。 极语言的官方网址是: http://sec.yihuolao.com/ http://sec.z5x.cn/ http://www.z5x.cn/ 极语言入门教学视频:https://www.ixigua.com/7128748847265743371 极语言游戏教学视频:https://www.ixigua.com/712

    2024年02月05日
    浏览(50)
  • 最喜爱的编程语言——Python

            编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。一种能够让程序员准确地定义计算机所需数据的计算机语言,并精确地定义在不同情况下所应当采取的行动。        编程语言处在不断的发展和变化中,从最初的机器语言发展到如今

    2024年02月09日
    浏览(49)
  • 一文了解Python编程语言及安装

    目录 🍒初识Python 🍒什么是编程语言 🍒安装python(windows) 🍒安装python(Linux)     🦐博客主页:大虾好吃吗的博客     🦐专栏地址:Python从入门到精通专栏 人生苦短,我用python          Python是一种高级编程语言,由荷兰人Guido van Rossum于1989年创造。 Python是一种高

    2024年02月11日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包