题解 | #所有的回文子串II#
所有的回文子串II
https://www.nowcoder.com/practice/3373d8924d0e441987650194347d3c53
- 题目考察的知识点 : 枚举遍历
- 题目解答方法的文字分析:
- 使用双重循环枚举字符串
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题的解法思路

