首页 > 其他分享 >leedcode-重复的子字符串

leedcode-重复的子字符串

时间:2024-05-08 18:12:53浏览次数:30  
标签:rptr sonStr 重复 leedcode len times 字符串 指针

class Solution:
    def repeatedSubstringPattern(self, s: str) -> bool:
        # 获取字符串的长度
        n = len(s)

        # 初始化指针指向字符串的最后一个字符
        rptr = n - 1

        # 在指针到达字符串的第一个字符之前循环
        while rptr > 0:
            # 向左移动指针,直到找到一个与第一个字符相同的字符
            while s[rptr] != s[0]:
                rptr -= 1
                # 如果指针在找到匹配字符之前到达字符串的开头,返回False
                if rptr == 0:
                    return False

            # 从当前指针到字符串末尾提取一个潜在的子字符串
            sonStr = s[rptr:n]
            # 获取潜在子字符串的长度
            sonStr_len = len(sonStr)
            # 计算潜在子字符串重复多少次可以覆盖整个字符串
            times = n // sonStr_len
            
            # 如果潜在子字符串重复'times'次后长度不等于原始字符串长度,继续往左移动指针并尝试下一个子字符串
            if len(sonStr * times) != n:
                rptr -= 1
                continue
            
            # 检查潜在子字符串重复'times'次是否等于原始字符串
            if sonStr * times == s:
                return True
            else:
                # 如果不是,则向左移动指针并继续检查
                rptr -= 1

        # 如果没有找到重复的子字符串模式,则返回False
        return False

 

标签:rptr,sonStr,重复,leedcode,len,times,字符串,指针
From: https://www.cnblogs.com/yyyjw/p/18180530

相关文章

  • Python中级之数据类型的内置方法1(数字类型和字符串)
    【一】数字类型【1】整数类型(int)(1)定义直接用整数定义,整数类型的值不能修改num=6(2)内置方法int.bit_length()#返回整数的二进制表示中最高位的位数,不包括符号和前导零。a=10b=a.bit_length()print(b)#输出4int.to_bytes(length,byteorder,signed)#......
  • string:Python的文本常量与字符串模板
    前言在程序中,有很多高效率的字符串处理方式,如果开发者能够完全掌握这些高效的字符串处理,往往在开发者也能事半功倍。比如针对于字符串的处理,也是自然语言处理的基础知识。而python3中,处理字符串的库为:string。本篇将详细介绍各种字符串的高效处理方式。首字母大写对于英文单词......
  • 字符串相关
    字符串相关文章参考:[详解-字符串]C++必知必会字符串-string常用各种操作解析-知乎(zhihu.com)C++字符串(string)常用操作总结-知乎(zhihu.com)c++读取字符串和字符的6种函数_c++获取字符串的每个字符-CSDN博客字符串使用大全(比较实用的):C++中的String的常用函数用法总......
  • 字符串总结
    哈希用于比较两个字符串是否相等;本质就是把一个字符串看成一个base进制的数(base自定),每一位是这一位的字符对应的$ASCII$值,在比较时只需判断这两个数(即哈希值)是否相等即可;一般的,base会选一个质数(200+即可),很容易发现,一个字符串的哈希值是很大的,所以要进行取模;Hash冲突当Has......
  • 格式化字符串
       //{N,M:A}N是索引M是宽度A是预定义类型N和M逗号分隔,M和A用冒号分隔inta=900;intb=1055;Console.WriteLine("{0,4:C2}\n+{1,4:C2}\n------------\n{2,4:C2}",a,b,a+b);       decimalc=0.22m;Console.WriteLin......
  • buuctf-pwn-[第五空间2019 决赛]PWN5-格式化字符串漏洞
    题目地址:https://buuoj.cn/challenges#[第五空间2019决赛]PWN5先检查一下保护情况再拖进ida里分析找到一个格式化字符串漏洞,那么我们可以利用这个漏洞去获取或者改写dword_804C044的值从而进入if语句中,拿到shell什么是格式化字符串漏洞所谓格式化字符串漏洞,就是我们能控......
  • php-strpos 判断一个字符串是否存在于另一个字符串中
    在PHP中,你可以使用strpos()函数来判断一个字符串(例如"play")是否存在于另一个字符串中。strpos()函数会返回子字符串在原始字符串中首次出现的位置(索引从0开始),如果子字符串不存在,则返回false。以下是一个简单的示例:$string="Iliketoplaybasketball";$substring......
  • leedcode-分发饼干(贪心算法)
    自己写的,没有使用排序,会超出时间限制:classSolution:deffindContentChildren(self,g:List[int],s:List[int])->int:iflen(s)==0:return0count=0foriinrange(len(g)):mydict={}forjin......
  • Levenshtein:计算字符串的编辑距离
    https://github.com/ztane/python-Levenshtein/在处理文本数据时,我们经常需要比较两个字符串的相似度,无论是在自然语言处理、数据清洗还是用户输入验证中。这时,Levenshtein距离(又称编辑距离)就显得尤为重要。它衡量的是,将一个字符串转换成另一个字符串所需的最少编辑操作次数,包括......
  • 找出俩个字符串的相同并删除
    找出俩个字符串相同并删除今天遇到一个题目,就是有俩个字符串,A和B,找出A中和B相同的字母,并删除,只对字母进行操作,具体题目如下:子函数实现对于比较A和B字符串并删除A与B相同的字母,返回A的地址/********************************************************************* name ......