Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 사전적으로 가장 큰 문자열의 회문 부분열 찾기


문자열 S가 있다고 가정합니다. 해당 문자열의 사전순으로 가장 큰 회문 하위 시퀀스를 찾아야 합니다.

따라서 입력이 "tutorialspointtutorial"과 같으면 출력은 "uu"가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • ans :=빈 문자열

  • max_val :=s[0]

  • 범위 1에서 s까지의 i에 대해 수행

    • max_val :=max_val의 최대값, s[i]

  • 범위 0에서 s까지의 i에 대해

    • s[i]가 max_val과 같으면

      • ans :=ans + s[i]

  • 반환

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def largest_palindromic_substr(s):
   ans = ""
   max_val = s[0]
   for i in range(1, len(s)):
      max_val = max(max_val, s[i])
   for i in range(0, len(s)):
      if s[i] == max_val:
         ans += s[i]
   return ans

s = "tutorialspointtutorial"
print(largest_palindromic_substr(s))

입력

"tutorialspointtutorial"

출력

uu