647. 回文子串
题目
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。
具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。
示例 1:
输入:"abc"
输出:3
解释:三个回文子串: "a", "b", "c"
示例 2:
输入:"aaa"
输出:6
解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"
提示:
输入的字符串长度不会超过 1000 。
解题思路
思路:动态规划
先看题目,题目要求在给定的字符串中,求得字符串中有多少个回文子串。其中提及,不同开始或结束位置的子串,即便相同也视为不同子串。
其实看完题目,我们想到最直接的想法就是,先枚举字符的组合,判断这些字符组合成的子串是否是回文串即可。
现在我们来看看,用这种直接的方法代码实现:
class Solution:
def countSubstrings(self, s: str) -> int:
def is_palindrome(string):
"""判断传入字符串是否是回文串
"""
left &