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

设计优秀网站作品bt磁力天堂torrentkitty

设计优秀网站作品,bt磁力天堂torrentkitty,微信版网站制作,城阳建设局网站题目 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列&a…

题目

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。
进阶:
如果有大量输入的 S,称作 S1, S2, … , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?

一、代码实现

基础解法(双指针法)
func isSubsequence(s string, t string) bool {i, j := 0, 0for i < len(s) && j < len(t) {if s[i] == t[j] {i++}j++}return i == len(s)
}
进阶解法(预处理+二分搜索)
func isSubsequenceAdvanced(s string, t string) bool {// 预处理:记录每个字符在t中的位置index := make(map[byte][]int)for i := 0; i < len(t); i++ {c := t[i]index[c] = append(index[c], i)}// 匹配s的每个字符currentPos := 0for i := 0; i < len(s); i++ {c := s[i]positions, exists := index[c]if !exists {return false}// 二分查找第一个>=currentPos的位置pos := sort.SearchInts(positions, currentPos)if pos == len(positions) {return false}currentPos = positions[pos] + 1}return true
}

二、算法分析

1. 核心思路
  • 双指针法:通过两个指针同步遍历 st,匹配字符后移动 s 指针,最终判断 s 是否遍历完成。
  • 预处理优化:针对大量 s 输入的情况,预处理 t 的结构(记录每个字符的索引位置),使用二分查找快速定位匹配位置,减少重复遍历 t 的时间。
2. 关键步骤
  1. 双指针法

    • 初始化 i(指向 s)和 j(指向 t)为0。
    • 每次匹配成功时 ij 同时右移,否则仅 j 右移。
    • i 遍历完 s 时返回 true
  2. 预处理优化

    • 构建哈希表,记录 t 中每个字符的所有出现位置。
    • 对每个 s 的字符,在其对应的位置列表中二分查找第一个不小于当前匹配位置的值。
3. 复杂度
方法时间复杂度空间复杂度适用场景
双指针法O(n)(n为t长度)O(1)单次查询
预处理+二分查找O(mlogk)O(n)大量查询(k≥10亿次)

三、图解

在这里插入图片描述

四、边界条件与扩展

1. 边界条件
  • s为空:空字符串是任何字符串的子序列。
  • t为空:若s非空则返回false
  • s比t长:直接返回false
2. 扩展验证
  • 大规模数据:预处理方法可在O(1)时间内完成单次查询(预处理时间O(n))。
  • 特殊字符:算法天然支持所有ASCII字符(需扩展哈希表范围)。
3. 算法对比
方法优势劣势
双指针法代码简单,空间O(1)无法应对大量查询
动态规划可复用LCS逻辑时间O(mn),空间O(mn)
预处理+二分查找处理10亿级查询时效率高预处理时间O(n)

五、总结

  • 核心逻辑:双指针法通过同步遍历快速判断子序列关系,时间复杂度为O(n);预处理方法通过空间换时间优化高频查询场景。
  • 优化点
    1. 双指针法的贪心策略确保匹配位置的最左对齐,避免回溯。
    2. 预处理方法利用哈希表+二分查找将单次查询复杂度降为O(mlogk)。
  • 应用场景:实时数据流中的子序列匹配(如日志分析)、高频查询系统设计(如API服务)。
http://www.dtcms.com/wzjs/217259.html

相关文章:

  • 网站主体负责人邮箱html网页制作代码
  • wamp环境下做网站深圳货拉拉
  • 浙江省建设信息港官网首页企业网站seo案例
  • 二级子域名查询入口搜索引擎排名优化是什么意思
  • 怎么做网站差不多站长百度收录入口在哪里查询
  • 如何成为网站开发工程师活动营销方案
  • 医院网站建设滞后店铺在百度免费定位
  • 公司网站制作费用申请成全高清免费观看mv
  • 优质的南昌网站建设抖音推广平台
  • 家里电脑如何做网站如何搭建公司网站
  • 网站自定义链接怎么做百度笔记排名优化
  • 英文网站如何做短视频营销案例
  • 物流公司网站模版东莞网站优化公司
  • wordpress sso网络营销推广优化
  • 如何拥有一个自己的网站网站百度推广
  • 免费的销售管理系统什么是seo
  • 南京网站外包万能浏览器
  • 什么网站做新闻更好类聚seo
  • 怎样在网站上做免费的网业香港疫情最新消息
  • 网站的定位线上运营推广
  • 软件开发和网站建设那个好微信朋友圈广告推广代理
  • 手机网站开发流程图网站建设的数字化和互联网化
  • wordpress writr站内seo和站外seo区别
  • 注册网站要公安备案吗互站网
  • 武汉网上商城网站建设媒体:北京不再公布各区疫情数据
  • 西宁seo网站建设游戏优化大师下载安装
  • 河北三河建设局网站网络推广的工作好做吗
  • wordpress判断首页怎么优化一个网站
  • 做照明出口的网站兰州网络推广
  • 怎么用阿里云做网站公司网络推广排名定制