- Leetcode-DP(Dynamic Programming)
- Leetcode--Longest Palindromic Su
- [LeetCode]5. Longest Palindromic
- LeetCode 5. Longest Palindromic
- LeetCode 5. Longest Palindromic
- LeetCode 5. Longest Palindromic
- LeetCode 5. Longest Palindromic
- [LeetCode]5. Longest Palindromic
- [Leetcode]5. Longest Palindromic
- LeetCode 5. Longest Palindromic
Longest Palindromic Substring
输入一个字符串,输出最长回文子串
直接按照中心点向两边判断,未用 Manacher 写法,待补充
# todo Manacher
class Solution:
def longestPalindrome(self, s):
"""
:type s: str
:rtype: str
"""
if len(s) == 0:
return ""
origin = ""
for index in range(len(s)):
origin = origin + "#" + s[index]
origin = origin + "#"
maxLen = 0
maxLenCenter = 0
for index in range(len(origin)):
left = index
right = index
length = 0
while left >= 0 and right < len(origin):
if origin[left] == origin[right]:
length = length + 1
left = left - 1
right = right + 1
else:
break
if length > maxLen:
maxLen = length
maxLenCenter = index
# print(s)
print(origin)
print(maxLenCenter, maxLen)
print(maxLenCenter - maxLen + 1, maxLenCenter + maxLen + 1)
dist = origin[maxLenCenter - maxLen + 2 : maxLenCenter + maxLen : 2]
print(dist)
return dist
网友评论