繁体   English   中英

如何在python中找到最长的回文?

[英]How to find the longest palindrome in python?

众所周知,回文是一个等于它的反向的词。 以下是回文的一些示例: malayalamgagappaamma

我们认为任何由英文字母组成的序列都是一个词。 所以 axxb、abbba 和 bbbccddx 是我们的目的词。 aaabbaaa、abbba 和 bbb 是回文的例子。

词的子词是指词的连续子序列。 例如单词abbba的子词是a、b、ab、bb、ba、abb、bbb、bba、abbb、bbba和abbba。

在此任务中,您将给出一个单词,并且您必须找到该单词中最长的也是回文的子单词。

例如,如果给定的单词是 abbba,那么答案就是 abbba。 如果给定的单词是 abcbcabbacba,那么答案是 bcabbacb。

解决方案提示 w 的任何回文子字在 w 反转时也是子字。

输入格式 输入的第一行包含一个整数 N,表示单词的长度。 下面一行包含一个长度为 N 的单词,由字母 a、b、…、z 组成。

输出格式输出的第一行必须包含一个整数,表示给定单词的最长子字的长度,即回文。 第二行必须包含一个子字,它是一个回文并且最大长度。 如果最大长度的子词回文不止一个,则打印字典序最小的(即字典顺序最小的)。

测试数据:您可以假设 1 ≤ N ≤ 5000。您可以进一步假设在 30% 的输入中 1 ≤ N ≤ 300。

示例:我们使用上面的示例来说明输入和输出格式:

Sample Input 1:
5
abbba
Sample Output 1:
5
abbba
Sample Input 2:
12
abcbcabbacba
Sample Output 2:
8
bcabbacb

我尝试了一个代码,但它不起作用!!

请帮我一些其他的代码!

这是我的代码,但它不起作用!

n = int(input())
ar = []
bestvals = [] 
best_stored = [] 
for x in range(n): 
    ar.append(int(input())) 
    best_stored.append(0) 
    best_stored[0] = 1 
    for i in range(n): 
        maxval = 1 
        for j in range(i): 
            if ar[i] % ar[j] == 0:
                maxval = max(maxval,(best_stored[j])+1) 
        best_stored[i] = maxval
print(max(best_stored))
def longestPalindrome():
    n = int(input())
    s = input()
    temp = ""
    for i in range(len(s)):
        for j in range(len(s)-1,i-1,-1):
            if s[i] == s[j]:
                m = s[i:j+1]
                if m == m[::-1]:
                    if len(temp) <= len(m):
                        temp = m
    print(len(temp))
    print(temp)

longestPalindrome()   

这应该可以正常工作:

word = input('enter your word: ')
subwords = []
for i in range(len(word)):
    for j in range(len(word)+1):
        subwords.append(word[i:j])

palindromes = []
for subword in subwords:
    if subword == subword[::-1]:
        palindromes.append(subword)


print(len(max(palindromes, key=len)))
print(max(palindromes, key=len))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM