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

电气行业网站建设多少钱百度2019旧版本下载

电气行业网站建设多少钱,百度2019旧版本下载,企业网站优化设计应该把什么放在首位,哪个网站做外单出口好题目 给定字符串 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.cadmedia.cn/news/4922.html

相关文章:

  • 维影企业网站管理系统搜索引擎优化中的步骤包括
  • 政府网站建设 重要性免费发seo外链平台
  • 英文网站建设推广万网登录入口
  • 360搜索优化搜索引擎广告优化
  • 指定词整站优化网站百度
  • 供应链管理系统名词解释seo网站推广目的
  • 南江县住房和城乡建设局网站网络营销心得体会
  • 项目网站的建设有两种模式广州网站运营
  • web前端毕业设计作品郑州seo外包费用
  • 厦门市思明区建设局网站sem运营有出路吗
  • 创建直播平台seo推广优化平台
  • 无障碍网站建设推广前景营销软件培训
  • 网站编程所用的语言有百度站长工具如何使用
  • 自己做的网站如何赚钱吗建设网站
  • 青岛网站建设维护黄冈网站seo
  • 航空港区发改委建设网站创网站永久免费建站
  • 广州网站建设小程序开发查网址
  • 如何做外围网站的代理2020 惠州seo服务
  • 韶关网站建设科技有限公司提供seo服务
  • 洛阳网站建设网站建设官方百度
  • 商事登记服务工作室快手seo
  • 互联网是做什么的湘潭seo优化
  • 安卓手机软件开发平台优化设计高中
  • 益阳建设网站公司360投放广告怎么收费
  • 滨州网站建设hskj360品牌推广的方式
  • 棋牌网站建设站长资讯
  • wordpress jquery ui充电宝关键词优化
  • 太湖县住房和城乡建设网站市建设局深圳全网营销平台排名
  • 网站的制作方法软文新闻发布网站
  • 宝安的医院网站建设dz论坛seo设置