题解 | #所有的回文子串II#

所有的回文子串II

https://www.nowcoder.com/practice/3373d8924d0e441987650194347d3c53

  • 题目考察的知识点 : 枚举遍历
  • 题目解答方法的文字分析:
  1. 使用双重循环枚举字符串s中的所有子串,并使用check函数判断是否为回文子串。如果当前子串是回文子串,则将其添加进一个set中。最后,我们将set转换成list并进行排序,然后返回即可。
  • 本题解析所用的编程语言: Python
  • 完整且正确的编程代码
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param s string字符串
# @return string字符串一维数组
#
class Solution:
    def partitionII(self, s: str) -> List[str]:
        n = len(s)
        res = set()

        # 判断字符串s1中从位置l到位置r是否为回文串
        def check(s1, l, r):
            if r - l < 1:
                return False
            i, j = l, r
            while i < j:
                if s1[i] != s1[j]:
                    return False
                i += 1
                j -= 1
            return True

        # 枚举字符串s中的所有子串,并将回文子串添加进结果集合res中
        for i in range(n):
            for j in range(i+1, n):
                if check(s, i, j):
                    res.add(s[i:j+1])

        return sorted(list(res))  # 将结果集合转化成列表并按照字典序升序排序,然后返回
牛客高频top202题解系列 文章被收录于专栏

记录刷牛客高频202题的解法思路

全部评论

相关推荐

长鑫存储
投递长鑫存储等公司6个岗位 >
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务