美文网首页LeetCode
647. 回文子串

647. 回文子串

作者: cptn3m0 | 来源:发表于2019-03-17 13:56 被阅读1次

这道题目和求解最长回文子串的题目是一样的框架结构, 不同的地方在于这到题目统计的是总数.

class Solution(object):
    def countSubstrings(self, s):
        """
        :type s: str
        :rtype: int
        """
        
        # 这个题目和最长回文子串是一样的题目类型
        # 区别在于最长回文子串求解的最长的回文
        # 这套题目要求的是所有的回文子串的数目
        n = len(s)
        dp = [[False]*n for _ in range(n)]
        

        ret_count = 0
        # 初始化1, 对应于奇数
        for i in range(n):
            dp[i][i] = True
            # 统计长度为1的回文子串的数目
            ret_count +=1
            
        # 初始化2, 对应于偶数
        for i in range(1, n):
            if s[i-1] ==  s[i]:
                dp[i-1][i] = True
                # 统计长度为2的回文子串的数目
                ret_count+=1
        # 从 strlen == 3 开始递推
        for strlen in range(3,n+1):
            for i in range(0,n-strlen+1):
                j = i+strlen -1
                
                if s[i] ==s[j] and dp[i+1][j-1] == True:
                    dp[i][j] = True
                    # 统计长度从3开始的回文子串的数目
                    ret_count +=1
        
        return ret_count

相关文章

  • # 647. 回文子串(647. Palindromic Sub

    题目地址:647. 回文子串Given a string, your task is to count how m...

  • 两道回文子串的解法

    两道题分别是:leetcode 5. 最长回文子串 和 647. 回文子串 先看647题 找到一个字符串中所有的回...

  • Leetcode每日一题(5)

    647. 回文子串 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串...

  • 647.回文子串

    647.回文子串 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即...

  • 647. 回文子串

    思路:直接暴力来列举出所有的回文中心,然后一个一个的去判断是不是能构成回文串判断索引为left和right的值是不...

  • 647. 回文子串

    给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组...

  • 647. 回文子串

    这道题目和求解最长回文子串的题目是一样的框架结构, 不同的地方在于这到题目统计的是总数.

  • 647. 回文子串

    解法 动态规划解法 中心扩展思想

  • 647. 回文子串

    一 题目: 二 思路: 动态规划法 状态:dp[i][j] 表示字符串s在[i,j]区间的子串是否是一个回文串。状...

  • 647. 回文子串(Python)

    题目 难度:★★★☆☆类型:数组方法:动态规划 力扣链接请移步本题传送门[https://leetcode-cn....

网友评论

    本文标题:647. 回文子串

    本文链接:https://www.haomeiwen.com/subject/mjhumqtx.html