[LeetCode][Medium]Longest Palindromic Substring
1604 ワード
質問する
に答える
文字列を元に戻します.
# return s when it is a palindrome itself.
if len(s)<2 or s==s[::-1]:
return s
# find palindrome and expand right and left
def expand(left: int, right: int) -> str:
while left >= 0 and right < len(s) and s[left] == s[right]:
left += 1
right -= 1
return s[left+1:right]
(2)aba奇数個まで拡張
そこで、2つのポインタをスライドウィンドウのように左から右に移動し、最大値を探します.
class Solution:
def longestPalindrome(self, s: str) -> str:
# return s when it is a palindrome itself.
if len(s) < 2 or s == s[::-1]:
return s
# ind palindrome and expand right and left
def expand(left: int, right: int) -> str:
while left >= 0 and right < len(s) and s[left] == s[right]:
left -= 1
right += 1
return s[left + 1:right]
result = ''
# find longest palindromic substring
for i in range(len(s) - 1):
result = max(result,
expand(i, i + 1),
expand(i, i + 2),
key=len)
return result
Reference
この問題について([LeetCode][Medium]Longest Palindromic Substring), 我々は、より多くの情報をここで見つけました https://velog.io/@bae12/LeetCodeMediumLongest-Palindromic-Substringテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol