当前位置: 首页 > wzjs >正文

怎么做带购物功能的网站最好的搜索引擎

怎么做带购物功能的网站,最好的搜索引擎,青岛网站推广的价格,网站网页设计设计方案文章目录 习题28.找出字符串中第一个匹配项的下标1392.最长快乐前缀 本博客充分参考灵神和知乎的另一位博主 灵神KMP算法模版 知乎博主通俗易懂讲解 对于给定一个主串S和一个模式串P,如果让你求解出模式串P在主串S中匹配的情况下的所有的开始下标简单的做法又称为Brute-Force算…

文章目录

  • 习题
    • 28.找出字符串中第一个匹配项的下标
    • 1392.最长快乐前缀

本博客充分参考灵神和知乎的另一位博主

灵神KMP算法模版
知乎博主通俗易懂讲解

  • 对于给定一个主串S和一个模式串P,如果让你求解出模式串P在主串S中匹配的情况下的所有的开始下标
  • 简单的做法又称为Brute-Force算法,其实总的来说就是,外层循环遍历主串S,内存循环遍历模式串P,逐个匹配,当出现匹配不成功的情况,外层循环回到开始匹配位置+1,内层循环直接返回位置0,可想而知,这个算法的时间复杂度是o(n*m)
  • KMP算法的改进思路,就是比较的时候,肯定是一个个比较的,这个是不能改进的,主要是可以降低比较趟数
    • 外层循环主串S不会退,只回退模式串P,并且模式串P回退的时候充分利用真前缀和真后缀的最大匹配的长度!

话不多说,大家可以看上面知乎的讲解就可以啦!

KMP算法python 模版

模版解决的问题:在主串s中查找模式串p,返回所有成功匹配的位置

def kmp(s: str, p: str) -> List[int]:m = len(p)# next[i] 表示p[0] 到 p[i] 的真前缀和真后缀的最大匹配长度next = [0] * m# cnt 用于记录当前模式串p的真前缀和真后缀的最大匹配长度cnt = 0for i in range(1, m):b = p[i]while cnt and p[cnt] != b:cnt = pi[cnt - 1]if p[cnt] == b:cnt += 1next[i] = cnt# 记录答案pos = []# cnt 用于存储主串s和模式串p的匹配长度cnt = 0for i, b in enumerate(text):# 不相等就让模式串p回退while cnt and p[cnt] != b:cnt = next[cnt - 1]if p[cnt] == b:cnt += 1if cnt == len(p):pos.append(i - m + 1)# 注意这个cnt = next[cnt - 1]return pos

习题

28.找出字符串中第一个匹配项的下标

28.找出字符串中第一个匹配项的下标

在这里插入图片描述

  • 典型的KMP算法的模版题目
class Solution:def strStr(self, haystack: str, needle: str) -> int:# KMP算法m = len(needle)next = [0]*m cnt = 0# 预处理next数组for i in range(1,m):b = needle[i]while cnt and needle[cnt] != b :cnt = next[cnt-1]if needle[cnt] == b:cnt += 1next[i] = cnt # 开始匹配cnt = 0 for i,b in enumerate(haystack):while cnt and needle[cnt] != b:cnt = next[cnt-1]if needle[cnt] == b:cnt += 1if cnt == m:return i - m + 1return -1

1392.最长快乐前缀

1392.最长快乐前缀

在这里插入图片描述

  • 算法思路:直接使用KMP算法进行求解,最终的next[m-1]就是最大的长度
class Solution:def longestPrefix(self, s: str) -> str:# 这个就是knp算法的max(next)m = len(s)next = [0]*(m)cnt = 0 ans = 0for i in range(1,m):b = s[i]while cnt and s[cnt] != b:cnt = next[cnt-1]if s[cnt] == b:cnt += 1next[i] = cntreturn s[:next[m-1]] if next[m-1] > 0 else ""
http://www.dtcms.com/wzjs/11102.html

相关文章:

  • 网站销售系统怎么做的查询网站
  • 做房产抵押网站需要什么手续培训平台
  • 怎么查看网站访问速度seo信息查询
  • 建设网站只凡科建站怎么样
  • 做动画视频的网站广州seo优化推广
  • 网站建设品牌推荐网店营销策划方案
  • 长春自主建站模板如何成为百度广告代理商
  • 湖南做旅游网站哪家最好怎么样在百度上推广自己的产品
  • 有没有做英语试题的网站汉中网络推广
  • 智能网站建设公司网络推广的含义
  • 漯河网做网站广州最新重大新闻
  • 网站主题有哪些内容各平台推广费用
  • 企业门户网站模板分享百度站长工具app
  • 网站托管服务方案3d建模培训学校哪家好
  • 如何做招商性网站saas建站
  • 东莞做网站企业铭陕西seo排名
  • 中小企业官方网站seo网站优化技术
  • 支持支付宝登录的网站建设东莞快速优化排名
  • 工程建设内容包括哪些seo人员培训
  • 日照便宜做网站软文素材库
  • 论坛做视频网站有哪些开鲁网站seo转接
  • 我想阻止一个网站要怎么做北京seo做排名
  • 修改图片网站网站优化推广的方法
  • 互联网营销师是我国哪一年发布的新职业seo 知乎
  • 网站建设时送的ppt方案教育培训加盟
  • 义乌小商品批发网上进货网址seo优化排名
  • 济南企业做网站如何建立免费公司网站
  • 网站建设和管理工作网页设计费用报价
  • 东莞手机网站如何做谷歌seo推广
  • 政府网站建设法律法规怎么申请域名建网站