Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tìm dãy con đối xứng lớn nhất theo thứ tự từ điển của chuỗi trong Python


Cho chuỗi S, tìm dãy con đối xứng (palindromic subsequence) lớn nhất theo thứ tự từ điển.

Ví dụ: "tutorialspointtutorial" → "uu" (ký tự 'u' lớn nhất, xuất hiện 2 lần).

Giải thuật

Dãy con đối xứng lớn nhất theo thứ tự từ điển chính là chuỗi gồm tất cả các lần xuất hiện của ký tự lớn nhất trong chuỗi.

  • Tìm ký tự lớn nhất max_val trong chuỗi.
  • Thu thập tất cả các vị trí có ký tự max_val.
  • Kết quả là chuỗi lặp max_val số lần xuất hiện.

Ví dụ

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(len(s)):
        if s[i] == max_val:
            ans += s[i]
    return ans

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

Đầu vào

"tutorialspointtutorial"

Đầu ra

uu