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

网站建设应当注意哪些问题常州天宁区做网站公司

网站建设应当注意哪些问题,常州天宁区做网站公司,智慧农业项目方案,wordpress页面自定义数据上传图片1143. 最长公共子序列 问题描述#xff1a; 给定两个字符串 text1 和 text2#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在公共子序列 #xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串#xff1a;它是由原字符串在不改变字符的相对… 1143. 最长公共子序列 问题描述 给定两个字符串 text1 和 text2返回这两个字符串的最长 公共子序列 的长度。如果不存在公共子序列 返回 0 。 一个字符串的 子序列 是指这样一个新的字符串它是由原字符串在不改变字符的相对顺序的情况下删除某些字符也可以不删除任何字符后组成的新字符串。 例如ace 是abcde的子序列但 aec 不是abcde的子序列。 两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。 示例 1 输入text1 “abcde”, text2 “ace” 输出3 解释最长公共子序列是 “ace” 它的长度为 3 。 示例 2 输入text1 “abc”, text2 “abc” 输出3 解释最长公共子序列是 “abc” 它的长度为 3 。 提示 1 text1.length, text2.length 1000text1 和 text2 仅由小写英文字符组成。 问题分析 常见的题目了只是这个题目的子序列并不是严格的子序列是相对位置一样也算很显然是dp设假设dp[i][j] 表示字符串text1[0:i]和字符串text2[0:j]的最长公共子序列的长度现在讨论细节 (1) 很显然当i0 or j0时dp为0。 (2) text1[0:i] text2[0:j] 时很显然就上一个状态加上1即dp[i][j]dp[i-1][j-1]1 (3) text1[0:i] ! text2[0:j] 时竟然不相等那就text1和text2各自的上一个状态两者取最值就好了即dp[i][j]max(dp[i-1][j], dp[i][j-1])所以整体状态转移方差为 i0 or j0 : dp[i][j] 0 text1[i-1] text2[j-1]: dp[i][j] dp[i-1][j-1] 1 text1[i-1] ! text2[j-1]: dp[i][j] max(dp[i-1][j], dp[i][j-1])Python3实现 # Time :2023/09/01 # Author :Liu # 动态规划class Solution:def longestCommonSubsequence(self, text1: str, text2: str) - int:m, n len(text1), len(text2)dp [[0] * (n 1) for _ in range(m 1)]for i in range(1, m 1):for j in range(1, n 1):if text1[i-1] text2[j-1]:dp[i][j] dp[i-1][j-1] 1else:dp[i][j] max(dp[i-1][j], dp[i][j-1])return dp[m][n]举一反三 其实面试的时候大多数情况下会有所改动例如如果题目中的最长公共子串必须为严格连续的那该如何求解其实这个题目就是 LeetCode: 718. 最长重复子数组 这个时候其实可以转换成公共前缀或者公共后缀的问题设假设dp[i][j] 表示字符串text1[0:i]和字符串text2[0:j]的最长公共后缀串的长度现在讨论细节 (1) 很显然当i0 or j0时dp为0。 (2) text1[0:i] text2[0:j] 时很显然就上一个状态加上1即dp[i][j]dp[i-1][j-1]1 (3) text1[0:i] ! text2[0:j] 时不相等那就当前字符串text1[0:i]和text2[0:j] 没有公共后缀串所以就是0了即dp[i][j]0所以整体状态转移方差为 i0 or j0 : dp[i][j] 0 text1[i-1] text2[j-1]: dp[i][j] dp[i-1][j-1] 1 text1[i-1] ! text2[j-1]: dp[i][j] 0Python3实现 # Time :2023/09/01 # Author :Liu # 动态规划class Solution:def longestCommonSubsequence2(self, text1, text2):m, n len(text1), len(text2)dp [[0] * (n 1) for _ in range(m 1)]ans, sub 0, # 最长公共子串长度最长公共子串for i in range(1, m 1):for j in range(1, n 1):if text1[i-1] text2[j-1]:dp[i][j] dp[i-1][j-1] 1else:dp[i][j] 0 # 这一步其实没必要本身就为0if ans dp[i][j]: # 更新最长子串ans dp[i][j]sub text1[i-ans: i]return ans, subif __name__ __main__:solu Solution()text1, text2 abcde, eahabcdprint(solu.longestCommonSubsequence2(text1, text2)) # (4, abcd)相关参考 题目链接 参考链接 声明 总结学习有问题或不当之处可以批评指正哦谢谢。
http://www.huolong8.cn/news/414679/

相关文章:

  • 互联网建站大连市住建局官方网
  • 杭州网站建设路网站正在建设 英文翻译
  • 网站模仿算侵权吗俄罗斯网站域名注册
  • 建设购物网站的条件磁力狗
  • 北京专业制作网站公司吗国内外贸seo推广平台排名
  • 顶尖的设计网站共和网站建设公司
  • 专业做苗木的网站wordpress批量评论
  • html5 metro风格网站模板wordpress 充值积分插件
  • 东莞公司建设网站宿迁企业做网站
  • 成品网站短视频源码搭建免费erp系统是怎样的一个软件
  • 做网站背景图的科技图片海报生成免费
  • 泉州网站优化郑州网站制作费用
  • python做爬虫和做网站呼伦贝尔市住房和城乡建设局网站
  • 网站备案信息被注销wordpress登录界面
  • 九江网站建设优化英文seo外链发布工具
  • 左右布局的网站企业名录搜索软件app
  • 在建设部网站呢李可以看出需要什么时候考试哪个网站做图找图片
  • 仙桃做网站的公司有哪些大气集团网站
  • wordpress网站检测wordpress替换谷歌字体
  • 天津建设网站首页怎样在网上卖产品
  • 网站经营方案 备案wordpress 首页展示
  • 学院网站设计方案网站正在建设中 图片
  • php企业门户网站模板杭州网站推广宣传
  • 网站备案流程何时改搜点济南网站建设
  • 献县网站如何查看网站语言
  • wordpress 取消赞沈阳网站建设seo优化
  • 家具网站模版wordpress微交易
  • 做emc的有哪些网站如何让自己做的网站让别人看到
  • 太原做网站推广的公司kfk wordpress
  • 专业做校园文化的网站公众号怎么开通留言功能