오늘 배웠습니다: 가장 긴 회문 부분 문자열
4938 단어 pythonalgorithmswebdevbeginners
문제 설명
문자열을 받아 가장 긴 회문 부분 문자열을 반환하는 함수를 작성하십시오.
샘플 입력
string = "qazaasdffdsaawsx"
샘플 결과
"aasdffdsaa"
코드 #1
def longest_palindromic_substring(string):
cur_longest = [0, 1]
for idx in range(1, len(string)):
odd = get_longest_palindrome(string, idx - 1, idx + 1)
even = get_longest_palindrome(string, idx - 1, idx)
longest = max(odd, even, key=lambda x: x[1] - x[0])
cur_longest = max(longest, cur_longest, key=lambda x: x[1] - x[0])
return string[cur_longest[0]:cur_longest[1]]
def get_longest_palindrome(string, idx_l, idx_r):
while idx_l > -1 and idx_r < len(string):
if string[idx_l] != string[idx_r]:
break
idx_l -= 1
idx_r += 1
return [idx_l + 1, idx_r]
메모
string = "qazaasdffdsaawsx"
샘플 결과
"aasdffdsaa"
코드 #1
def longest_palindromic_substring(string):
cur_longest = [0, 1]
for idx in range(1, len(string)):
odd = get_longest_palindrome(string, idx - 1, idx + 1)
even = get_longest_palindrome(string, idx - 1, idx)
longest = max(odd, even, key=lambda x: x[1] - x[0])
cur_longest = max(longest, cur_longest, key=lambda x: x[1] - x[0])
return string[cur_longest[0]:cur_longest[1]]
def get_longest_palindrome(string, idx_l, idx_r):
while idx_l > -1 and idx_r < len(string):
if string[idx_l] != string[idx_r]:
break
idx_l -= 1
idx_r += 1
return [idx_l + 1, idx_r]
메모
"aasdffdsaa"
def longest_palindromic_substring(string):
cur_longest = [0, 1]
for idx in range(1, len(string)):
odd = get_longest_palindrome(string, idx - 1, idx + 1)
even = get_longest_palindrome(string, idx - 1, idx)
longest = max(odd, even, key=lambda x: x[1] - x[0])
cur_longest = max(longest, cur_longest, key=lambda x: x[1] - x[0])
return string[cur_longest[0]:cur_longest[1]]
def get_longest_palindrome(string, idx_l, idx_r):
while idx_l > -1 and idx_r < len(string):
if string[idx_l] != string[idx_r]:
break
idx_l -= 1
idx_r += 1
return [idx_l + 1, idx_r]
메모
크레딧
Reference
이 문제에 관하여(오늘 배웠습니다: 가장 긴 회문 부분 문자열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/anzhari/today-i-learned-longest-palindromic-substring-2ip5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)