如何在python中找到最长的回文?
众所周知,回文是一个与其反面相等的词。这里有一些回文的例子:如何在python中找到最长的回文?,python,python-3.x,Python,Python 3.x,众所周知,回文是一个与其反面相等的词。这里有一些回文的例子:malayalam,gag,appa,amma 我们认为任何一个由英文字母组成的序列都是一个词。所以axxb、abbba和bbbccddx是我们的专用词。aaabbaa、abbba和bbb是回文的例子 我们所说的单词的子单词,是指单词的连续子序列。例如,单词abbba的子单词是a、b、ab、bb、ba、abb、bbb、bba、abbb、bbb、bbba和abbba 在这个任务中,你将得到一个单词,你必须找到这个单词中最长的子单词,它也是
malayalam
,gag
,appa
,amma
我们认为任何一个由英文字母组成的序列都是一个词。所以axxb、abbba和bbbccddx是我们的专用词。aaabbaa、abbba和bbb是回文的例子
我们所说的单词的子单词,是指单词的连续子序列。例如,单词abbba的子单词是a、b、ab、bb、ba、abb、bbb、bba、abbb、bbb、bbba和abbba
在这个任务中,你将得到一个单词,你必须找到这个单词中最长的子单词,它也是一个回文
例如,如果给定的单词是abbba,那么答案是abbba。如果给定的单词是abcbcabbabba,那么答案是bcabbacb
解决方案提示
当w反转时,w的任何回文子词也是子词
输入格式
输入的第一行包含一个表示单词长度的整数N。下一行包含一个长度为N的单词,由字母a、b、…、z组成
输出格式
输出的第一行必须包含一个整数,指示给定单词的最长子单词(回文)的长度。第二行必须包含一个子词,该子词是回文,且长度最大。如果有多个子词回文具有最大长度,则打印字典最小的子词回文(即字典顺序中最小的子词回文)
测试数据:
你可以假设1≤ N≤ 5000您可以进一步假设,在30%的输入中,1≤ N≤ 三百
例如:
我们使用上述示例说明输入和输出格式:
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))
这应该很好:
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))
def longestPalindrome():
n=int(输入())
s=输入()
temp=“”
对于范围内的i(len(s)):
对于范围内的j(透镜-1,i-1,-1):
如果s[i]==s[j]:
m=s[i:j+1]
如果m==m[:-1]:
如果len(temp)这是我的代码,但它不工作!n=int(输入())ar=[]最佳值=[]存储的最佳值=[]用于范围内的x(n):ar.append(输入())存储的最佳值。append(0)存储的最佳值[0]=1用于范围内的i(n):maxval=1用于范围内的j(i):如果ar[i]%ar[j]==0:maxval=max(maxval,(存储的最佳值[j])+1)存储的最佳值[i]=maxval打印(存储的最佳值)将您的代码添加到问题中。改为在问题中添加代码。此处不可读。将您的代码包含在问题中,并正确描述您遇到的问题。请部分查看此操作!查看此示例(示例输入1:5 abbba示例输出1:5 abbba示例输入2:12 abcbcabba示例输出2:8 bcabbacbb)输出必须是这样的。但是输出是另一种东西!@RoshiniManoharan它和我工作得很好。我确实输入了“abcbcabbabababba”作为输入,并得到了“bcabbacb”作为输出。
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()