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

网站服务器连接被重置网站制作还花钱

网站服务器连接被重置,网站制作还花钱,百度推广电话营销话术,怎样才能在百度搜索到自己的网站✨ 字符串 DP 三连:最长回文子串、最长公共子序列 & 编辑距离(LeetCode 5 / 1143 / 72) 🔁 5. 最长回文子串📏 1143. 最长公共子序列✂️ 72. 编辑距离 1️⃣ 最长回文子串(LeetCode 5) &…

✨ 字符串 DP 三连:最长回文子串、最长公共子序列 & 编辑距离(LeetCode 5 / 1143 / 72)

  • 🔁 5. 最长回文子串
  • 📏 1143. 最长公共子序列
  • ✂️ 72. 编辑距离

1️⃣ 最长回文子串(LeetCode 5)

📌 题目描述

给你一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。


🧠 解题思路:动态规划

✅ 状态定义

dp[i][j] 表示子串 s[i...j] 是否是回文串。

🔁 状态转移方程
  • 如果 s[i] == s[j]

    • j - i < 3,则 dp[i][j] = true
    • 否则:dp[i][j] = dp[i+1][j-1]
  • 否则:dp[i][j] = false


✅ Go 实现

func longestPalindrome(s string) string {n := len(s)if n < 2 {return s}dp := make([][]bool, n)for i := range dp {dp[i] = make([]bool, n)}maxLen := 1start := 0for r := 1; r < n; r++ {for l := 0; l < r; l++ {if s[l] == s[r] {if r - l < 3 {dp[l][r] = true} else {dp[l][r] = dp[l+1][r-1]}}if dp[l][r] && r - l + 1 > maxLen {maxLen = r - l + 1start = l}}}return s[start:start+maxLen]
}

2️⃣ 最长公共子序列(LeetCode 1143)

📌 题目描述

给定两个字符串 text1text2,返回它们的最长公共子序列的长度。


🧠 解题思路:二维 DP

✅ 状态定义

dp[i][j] 表示 text1[0...i-1]text2[0...j-1] 的最长公共子序列长度。

🔁 状态转移
  • 如果 text1[i-1] == text2[j-1],说明当前字符可加入序列:
    dp[i][j] = dp[i-1][j-1] + 1
  • 否则:
    dp[i][j] = max(dp[i-1][j], dp[i][j-1])

✅ Go 实现

func longestCommonSubsequence(text1 string, text2 string) int {m, n := len(text1), len(text2)dp := make([][]int, m+1)for i := range dp {dp[i] = make([]int, n+1)}for i := 1; i <= m; i++ {for j := 1; j <= n; j++ {if text1[i-1] == text2[j-1] {dp[i][j] = dp[i-1][j-1] + 1} else {dp[i][j] = max(dp[i-1][j], dp[i][j-1])}}}return dp[m][n]
}func max(a, b int) int {if a > b {return a}return b
}

3️⃣ 编辑距离(LeetCode 72)

📌 题目描述

给你两个单词 word1word2,请返回将 word1 转换成 word2 所使用的最少操作数(插入、删除、替换)。


🧠 解题思路:经典 DP 模板题

✅ 状态定义

dp[i][j] 表示将 word1[0...i-1] 转换为 word2[0...j-1] 所需的最小编辑距离。

🔁 状态转移
  • 如果 word1[i-1] == word2[j-1],则 dp[i][j] = dp[i-1][j-1]

  • 否则取三种操作的最小值加 1:

    • 插入:dp[i][j-1] + 1
    • 删除:dp[i-1][j] + 1
    • 替换:dp[i-1][j-1] + 1

✅ Go 实现

func minDistance(word1 string, word2 string) int {m, n := len(word1), len(word2)dp := make([][]int, m+1)for i := range dp {dp[i] = make([]int, n+1)}for i := 0; i <= m; i++ {dp[i][0] = i}for j := 0; j <= n; j++ {dp[0][j] = j}for i := 1; i <= m; i++ {for j := 1; j <= n; j++ {if word1[i-1] == word2[j-1] {dp[i][j] = dp[i-1][j-1]} else {dp[i][j] = min(dp[i-1][j-1], // 替换dp[i][j-1],   // 插入dp[i-1][j],   // 删除) + 1}}}return dp[m][n]
}func min(a, b, c int) int {if a < b {if a < c {return a}return c}if b < c {return b}return c
}

✅ 总结对比

题目类型状态定义状态转移重点
5 最长回文子串判断子串是否回文dp[i][j] 是不是回文s[i]==s[j] && dp[i+1][j-1]需倒序遍历
1143 最长公共子序列序列匹配dp[i][j] 表示最长长度相等加一,否则取较大不能连续字符
72 编辑距离转换操作dp[i][j] 表示最小操作数插入/删除/替换 三选一是经典题!

http://www.dtcms.com/wzjs/787863.html

相关文章:

  • 攀枝花建设工程质量监督站投诉网站在线购物网站功能模块
  • 做网站一年网络推广是什么意思
  • 做网站是哪个专业企业网站的技术维护内容主要包括
  • 深圳官方网站新闻网站建设捌金手指专业7
  • 益阳房产网站建设jquery电子商务网站模板
  • 简单 手机 网站 源码下载平面网页设计规范
  • 网站建设流程 知乎网站建设shundeit
  • 唐卡装饰集团 一站式超级体验店福建省城乡建设官方网站
  • 制作旅游网站设计概述石家庄学院
  • 满屏网站设计做多大深圳小程序开发外包
  • 城市生活网官方网站app天河做网站哪家好
  • 嘉兴建站模板北京做网站建设的公司
  • 黄山网站建设哪家强为什么做线上营销
  • 东莞饰品网站建设重庆制作网站培训机构
  • 怎么用网站建设网站底部源码
  • 做设计兼职的网站有哪些工作内容wordpress社交登录代码
  • 成都网站建设哪家技术好区网站制作
  • 建设银行甘肃省分行网站缴费制造网站建设哪家好
  • 江西省注册和城乡建设厅网站想做软件开发需要学什么
  • 湘潭网站开发市场调研报告怎么写
  • 中信国际建设公司网站一家专门做男人的网站
  • 丹江口市建设局网站产品推销方案
  • 综合门户网站建设方案做一个企业网站需要多少钱
  • 网站在线搭建系统公众号开发运营
  • 夏津建设局网站网站内容建设注意事项
  • 南山网站设计多少钱搜索引擎优化方法包括
  • 建设网站怎么收费wordpress 中型网站
  • 广州建站外贸网站千万别去电商公司上班
  • 云南建网站需要多少钱设计公司网站运营
  • 打造公司的网站企业品牌策划推广方案