首页 > 编程语言 >算法训练营第九天|28. 实现 strStr()459.重复的子字符串 字符串总结 双指针回顾

算法训练营第九天|28. 实现 strStr()459.重复的子字符串 字符串总结 双指针回顾

时间:2024-06-05 11:33:54浏览次数:19  
标签:第九天 slow strStr fast 循环 字符串 匹配 指针

28. 实现 strStr()

1.暴力解法:对主串的每一个字符都作为开头,尝试是否匹配字串,时间复杂度O(m*n)

2.确保所有的变量在使用前都被明确地初始化了

3.kmp算法之后慢慢理解!!!要记得!!!

459.重复的子字符串

1.暴力解法:列出所有的子字符串,看是否合法(子字符串开头固定),时间复杂度O(n*n)

2.用模的方式去验证重复

str[k]!=str[k%(i+1)]

3.注意要小循环结束的同时大循环也要结束

 if(flag==true&&s.length()%(i+1)==0) return true;

字符串总结

KMP的主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。

KMP的精髓所在就是前缀表(待理解)

双指针回顾 

1.双指针法的优势:通过两个指针在一个for循环下完成两个for循环的工作。

2.其实很多数组(字符串)填充类的问题,都可以先预先给数组扩容带填充后的大小,然后在从后向前进行操作

3.链表找环:使用快慢指针(双指针法),分别定义 fast 和 slow指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。

4.三数之和:通过前后两个指针不算向中间逼近,在一个for循环下完成两个for循环的工作。

标签:第九天,slow,strStr,fast,循环,字符串,匹配,指针
From: https://blog.csdn.net/bless_______/article/details/139419392

相关文章

  • printf() 格式字符串的使用方法
    printf()是C语言中一个非常重要的函数,它的核心功能是打印格式化的字符串。而其中的关键则是第一个参数——格式字符串(formatstring)。虽然大多数人都会使用格式字符串,但一些细节可能未必了解。本文将详细说明格式字符串的使用方法。格式字符串(formatstring)格式字符串是......
  • ### Python 字符串操作详解
    1.创建字符串使用引号创建字符串#单引号str1='Hello,World!'#双引号str2="Hello,World!"#三引号(可用于创建多行字符串)str3='''Hello,World!'''str4="""Hello,World!"""2.基本操作字符串连接str1=&quo......
  • 【每周例题】C++ 力扣 旋转字符串
    旋转字符串 题目旋转字符串 题目分析方法1:模拟字符串1.采用双for循环去模拟字符串旋转,第一个for循环,模拟字符串循环位移;第二个for循环,进行逐个字符串检测2.使用if进行判断是否符合要求方法2:假设我们将goal字符串拆分为2个字符串,将其命名为R、L,我们将会得到以下式子go......
  • 字符串的应用---合并
    准备:publicclassEmployee{publicintId{get;set;}publicstringName{get;set;}publicdoubleSalary{get;set;}}publicclassSeat{publicintId{get;set;}publ......
  • 字符函数和字符串函数
    目录1.字符分类函数2.字符转换函数3.strlen的使用和模拟实现4.strcpy的使⽤和模拟实现5.strcat的使用和模拟实现 6.strcmp的使用和模拟实现7. strncpy函数的使用8.strncat函数的使用9.strncmp函数的使用10.strstr的使用和模拟实现11.strtok函数的......
  • python09 字符串切片
    字符串切片'''字符串切片(字符串截取)语法:[start:stop:step]1.start=>开始索引默认:02.stop=>结束索引,不包括stop默认:到最后3.step=>步长默认:1三个都有默认值,但注意不能一个都不写。text="hello,python"索引:0:h1:e2:l3:l4:o5:,6:p7:......
  • 字符串的应用
    //1.string是System.String的别名,字符串需要使用双引号引起来strings="www.devsiki.com";//2.获取字符串长度intlength=s.Length;//3.比较字符串是否一样,结果为相同if(s=="www.devsiki.com")......
  • Leetcode 151.反转字符串中的单词
    ​此题是非常经典的字符串的颠倒问题,但这个更复杂一些,但也不其本质,我此次写的方式是用双指针问题完成的,虽然算不上什么好方法,但如果各位看官觉得满意的话,请各位给我个点个免费的赞吧,谢谢了_1.题目要求如图所示:2.接下来是做题的步骤:我们先把字符串的颠倒函数写好,如图......
  • 【算法】字符串函数
    今天讲讲字符串函数。//C++标凇库提供了丰富的字符串操作函数,下面介绍一些常用的函数。//备注:位置可以看成是字符串的下标,从0开始//获取字符串长度//使用length或size函数来获取字符串的长度。#include<iostream>#include<string>#include<algorithm>#include<......
  • python 字节转化为字符串
    str()在字节转化为字符串时,需要显式地提供encoding参数,否则返回的非正式的字符串表示。官方文档是这样说的:还可以使用decode()方法来将字节转化为字符串参考资料:Pythonstr()——将数据转换为字符串(freecodecamp.org)来自为知笔记(Wiz)......