문제 출처 : leetcode.com/problems/longest-palindromic-substring/
문제 해석 : 문자열 속에서 가장 긴 팰런드롬을 찾아서 반환하는 문제이다.
문제 풀이 : 이 문제는 투 포인터를 활용하여 풀이 할 수 있다.
--> ( 이 문제의 풀이는 파이썬 알고리즘 인터뷰 책의 풀이를 참고 했습니다. )
풀이 코드
class Solution:
def is_Palindrome(self, s: str, start: int, end: int) -> str:
while start >= 0 and end <= len(s):
if s[start] == s[end - 1]:
start -= 1
end += 1
else:
break
return s[start + 1:end - 1]
def longestPalindrome(self, s: str) -> str:
if len(s) < 2 or s == s[::-1]:
return s
answer = ''
for i in range(len(s) - 1):
answer = max(answer,
self.is_Palindrome(s, i, i + 1),
self.is_Palindrome(s, i, i + 2),
key=len)
return answer
if __name__ == "__main__":
solution = Solution()
s = "abb"
print(solution.longestPalindrome(s))
author : donghak park
contact : donghark03@naver.com
## 문제의 저작권은 LeetCode 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.
'📊알고리즘, 문제풀이 > 📈문제풀이 (PS)' 카테고리의 다른 글
[알고리즘][Python] LeetCode 42 Trapping Rain Water 문제 풀이 (0) | 2021.02.17 |
---|---|
[알고리즘][Python] LeetCode 1 Two Sum 문제 풀이 (0) | 2021.02.17 |
[알고리즘][Python] LeetCode 49 Group Anagrams 문제 풀이 (0) | 2021.02.16 |
[알고리즘][Python] LeetCode 819 Most Common Word 문제 풀이 (0) | 2021.02.16 |
[알고리즘][Python] LeetCode 937 Reorder Data in Log Files 문제 풀이 (0) | 2021.02.15 |