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

网页游戏源代码如何优化关键词的排名

网页游戏源代码,如何优化关键词的排名,网站的建设方法包括,深圳网站建设号392.判断子序列 力扣题目链接(opens new window) 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,&quo…

392.判断子序列

力扣题目链接(opens new window)

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。

示例 1:

  • 输入:s = "abc", t = "ahbgdc"
  • 输出:true

示例 2:

  • 输入:s = "axc", t = "ahbgdc"
  • 输出:false

提示:

  • 0 <= s.length <= 100
  • 0 <= t.length <= 10^4

两个字符串都只由小写字符组成。


双指针法
  1. 初始化两个指针i 用于遍历字符串 sj 用于遍历字符串 t
  2. 遍历字符串 t:使用指针 j 遍历字符串 t,对于 t 中的每个字符,检查是否与 s 中的当前字符(由 i 指向)相匹配。
  3. 匹配字符:如果匹配(即 s[i] == t[j]),则将 ij 同时向前移动;如果不匹配,则只将 j 向前移动。
  4. 检查是否遍历完 s:如果 i 等于 s 的长度,说明 st 的子序列;如果 j 先达到 t 的末尾,则说明 s 不是 t 的子序列。
def isSubsequence(s: str, t: str) -> bool:i, j = 0, 0while i < len(s) and j < len(t):if s[i] == t[j]:i += 1j += 1return i == len(s)# 测试代码
s1, t1 = "abc", "ahbgdc"
s2, t2 = "axc", "ahbgdc"print(isSubsequence(s1, t1))  # 应该输出 True
print(isSubsequence(s2, t2))  # 应该输出 False

115.不同的子序列

力扣题目链接(opens new window)

给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。

字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是)

题目数据保证答案符合 32 位带符号整数范围。

115.不同的子序列示例

提示:

  • 0 <= s.length, t.length <= 1000
  • s 和 t 由英文字母组成

动态规划思路解析

  1. 状态定义

    • dp[i][j] 表示考虑 s 的前 i 个字符和 t 的前 j 个字符时,t 作为 s 的子序列出现的次数。
  2. 状态初始化

    • dp[0][0] = 1:两个空字符串匹配的次数是1。
    • dp[i][0] = 1 对所有 i:如果 t 是空字符串,那么无论 s 是什么,都只有一种方式使 t 成为 s 的子序列(即全部删除 s)。
  3. 状态转移

    • 如果 s 的第 i 个字符与 t 的第 j 个字符相同(s[i - 1] == t[j - 1]),那么 t 的前 j 个字符可以在 s 的前 i - 1 个字符中找到对应的子序列,加上当前匹配的字符,形成新的子序列。同时,t 的前 j 个字符也可能在 s 的前 i - 1 个字符中出现多次,不包括 s[i]。因此,dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]
    • 如果不同(s[i - 1] != t[j - 1]),则 s 的第 i 个字符不能用于匹配 t 的第 j 个字符。这时,dp[i][j] = dp[i - 1][j]
  4. 最终结果

    • dp[len(s)][len(t)] 是最终结果,表示 s 的前 len(s) 个字符中 t 的前 len(t) 个字符作为子序列出现的总次数。
def numDistinct(s: str, t: str) -> int:m, n = len(s), len(t)# 初始化一个 (m+1) x (n+1) 的 dp 矩阵dp = [[0] * (n + 1) for _ in range(m + 1)]# 当 t 为空字符串时,s 的子序列中总有一种方式使得 t 为其子序列for i in range(m + 1):dp[i][0] = 1# 填充 dp 矩阵for i in range(1, m + 1):for j in range(1, n + 1):if s[i - 1] == t[j - 1]:# 如果字符匹配,可以选择使用或不使用 s[i-1]dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]else:# 如果字符不匹配,只能选择不使用 s[i-1]dp[i][j] = dp[i - 1][j]return dp[m][n]# 测试代码
s = "babgbag"
t = "bag"
print(numDistinct(s, t))  # 应该输出 5

http://www.yidumall.com/news/9380.html

相关文章:

  • 企业内部门户网站建设方案福州seo网站推广优化
  • 南阳微网站seo经典案例
  • 类模板模板下载网站有哪些大一网页设计作业成品免费
  • 在服务器网站上做跳转页面跳转页面百度广告公司联系方式
  • wordpress oa插件windows优化大师手机版
  • 怎么做影视网站优化快速排序
  • seo专员的工作内容北京seo优化排名推广
  • 威海网站建设排名榜手游推广渠道
  • 二手域名交易平台seo日常工作
  • 西安做网站 怎样备案广州seo托管
  • 可视化编程软件网站优化课程
  • 大学两学一做网站互联网营销案例
  • wordpress 整站播放器竞价托管代运营多少钱
  • 郑州软件开发工资武汉百度快照优化排名
  • 徐州东站苏州seo排名优化课程
  • 做java一个网站网络营销的优化和推广方式
  • 简述网站建设在作用关键词优化策略
  • 工业电商做网站怎么样自助建站系统哪个好用
  • 辅助网站怎么做的海南网站网络推广
  • blog网站设计怎么样推广自己的网站
  • 一个网站是如何知道是谁来访问免费网络推广软件
  • 怎么用建站abc做网站微信营销软件免费版
  • 广州做营销型网站百度关键词搜索引擎
  • 团购网站平台建设星链seo管理
  • 企业网站推广按成交收费网站网络推广推广
  • 网站服务器的工作原理广东seo外包服务
  • 南宁网站建设公司排名网站设计优化
  • dw简易网站怎么做抖音搜索排名
  • 网站建设如何推广老域名
  • 如何建立p2p网站seo关键词优化