首页 > 其他分享 >【lc】459. 重复的子字符串

【lc】459. 重复的子字符串

时间:2023-08-29 14:11:53浏览次数:48  
标签:459 lc res self length flag 字符串 might mights

链接:

https://leetcode.cn/problems/repeated-substring-pattern/description/

思路:

这题其实挺有意思的,我一开始寻思按照字符读到一个dict里统计各个字符的个数,讲道理每个字符的个数是相同的才对。(我承认我傻了,忽略了aab这种情况)

然后我就开始想,如果能行,那原串肯定是子串的n倍。 然后可以这么做:

1. 求出来子串可能的长度列表。

2. 遍历这个列表,查询子串是否满足条件。

代码:

class Solution:
    def repeatedSubstringPattern(self, s: str) -> bool:
        mights = self.get_mights(s)
        for might in mights[::-1]:
            slice = s[0:might]
            flag = True
            for i in range(0, len(s), might):
                tmp_sclice = s[i:i+might]
                if slice != tmp_sclice:
                    flag = False
                    break
            if flag:
                return flag
        return False

    def get_mights(self, s):
        length = len(s)
        res = []
        for i in range(1, length):
            if length % i == 0:
                res.append(i)
        return res

 

标签:459,lc,res,self,length,flag,字符串,might,mights
From: https://www.cnblogs.com/bjfu-vth/p/17664594.html

相关文章

  • 手撕代码之字符串
    文章目录一、反转字符串中的每一个单词(leetcode151、557)二、多个字符串的最长公共前缀(leetcode14)三、字符串转整数(leetcode8)四、N位数字串删除K个数字,使剩下的数字串最小(leetcode402)五、回文子串的个数(Leetcode647)六、最长无重复字符的子串(leetcode3)七、最长回文子串(leetcod......
  • 一次html中展示xml字符串不显示问题记录
    现象在html中展示xml字符串时不显示原因展示xml字符串时代码为document.getElementById("demoPre").innerHTML=xml字符串,此时xml并不会作为文本显示,而是将xml节点嵌入html中,而浏览器又不能解析xml节点,最后就不显示解决办法修改代码为document.getElementById("demoPre")......
  • Oracle 字符串相似度查询
    Oracle函数: SYS.UTL_MATCH.EDIT_DISTANCE_SIMILARITY(str,patternStr)--Oracle查询字符串相似度函数SELECTDISTINCTe.EQP_GROUP,SYS.UTL_MATCH.EDIT_DISTANCE_SIMILARITY(e.EQP_GROUP,'LARF')xsdFROMIMP_AREA_EQPGROUP_MAPPINGeORDERBYXSDDESC查询结果: ......
  • 1.5 编写自定位ShellCode弹窗
    在笔者上一篇文章中简单的介绍了如何运用汇编语言编写一段弹窗代码,虽然简易ShellCode可以被正常执行,但却存在很多问题,由于采用了硬编址的方式来调用相应API函数的,那么就会存在一个很大的缺陷,如果操作系统的版本不统或系统重启过,那么基址将会发生变化,此时如果再次调用基址参数则会......
  • 1.6 编写双管道ShellCode
    本文将介绍如何将CMD绑定到双向管道上,这是一种常用的黑客反弹技巧,可以让用户在命令行界面下与其他程序进行交互,我们将从创建管道、启动进程、传输数据等方面对这个功能进行详细讲解。此外,本文还将通过使用汇编语言一步步来实现这个可被注入的ShellCode后门,并以此提高代码通用性。......
  • r'\1'表示替换字符串中的第一个捕获组 将匹配到的字符串被替换为第一个捕获组的内容
    请解释pd.Series.str.replace(pat=r'(?i)(.*)-h.*',#(.*)表示一个捕获组repl=r'\1',#将匹配到的字符串被替换为捕获组的内容regex=True)中r'\1'的作用在pd.Series.str.replace()函数中,r'\1'表示替换字符串中的第一个捕获组......
  • 【lc】441. 排列硬币
    链接https://leetcode.cn/problems/arranging-coins/description/问题分析这题看数据规模,遍历肯定搞不定。看数据规律,我们优先考虑二分。然后单拎出来一个函数用来计算求和即可。其中,二分如果不好判断边界,就假定极限情况(来到了left==right的情况),看看最后你要的值是left还......
  • Leetcode 剑指Offer 05. 替换空格(Ti huan kong ge lcof)
    题目链接请实现一个函数,把字符串s中的每个空格替换成"%20"。示例1:输入:s="Wearehappy."输出:"We%20are%20happy."提示:0<=s的长度<=10000思路直接提交returns.replace("","%20"),常用方法信手拈来可不是每个人都能做到的(笑我的思路是首先定义一个leng......
  • Bash 字符串处理
    一、截取语法格式说明${string:start:length}从string字符串的左边第start个字符开始,向右截取length个字符。${string:start}从string字符串的左边第start个字符开始截取,直到最后。${string:0-start:length}从string字符串的右边第start个字......
  • sqlalchemy使用简单教程
    一、基本使用importtimeimportthreadingimportsqlalchemyfromsqlalchemyimportcreate_enginefromsqlalchemy.engine.baseimportEngine#第一步生成一个engine对象engine=create_engine("mysql+pymysql://root:[email protected]:3306/flask?charset=utf8",......