代码随想录算法营Day51|647.回文子串,516.最长回文子序列
- 其他
- 2025-09-16 01:03:01

647. 回文子串
这题用中心扩散法去计算字符串里有多少回文子串。
class Solution: def extend(self,s,i,j): res = 0 while i >= 0 and j<len(s) and s[i] == s[j]: res += 1 i-=1 j+=1 return res def countSubstrings(self, s: str) -> int: res = 0 for i in range(len(s)): res += self.extend(s,i,i) res += self.extend(s,i,i+1) return res 516. 最长回文子序列 class Solution: def longestPalindromeSubseq(self, s: str) -> int: n = len(s) dp = [[0]*n for _ in range(n)] for i in range(n-1,-1,-1): dp[i][i] = 1 for j in range(i+1,n): if s[i] == s[j]: dp[i][j] = dp[i+1][j-1] + 2 else: dp[i][j] = max(dp[i+1][j],dp[i][j-1]) return dp[0][n-1]代码随想录算法营Day51|647.回文子串,516.最长回文子序列由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“代码随想录算法营Day51|647.回文子串,516.最长回文子序列”