当前位置: 首页 > 知识库问答 >
问题:

在Python中保存最长列表

宦树
2023-03-14
def longestPalindrome(s):
    longest = []
    palindrome = []
    for i in range(len(s)):
        for j in range(i, len(s)):
            palindrome.append(s[j])
            if palindrome == palindrome[::-1]:
                print(palindrome)
                longest = palindrome
        palindrome = []
    return longest

print(longestPalindrome("What kind of racecar do you drive?"))

我尝试通过像这样更改if语句来只获得最长的回文。

if palindrome == palindrome[::-1] and len(palindrome) > len(longest):

这并不像预期的那样有效。我只打印第一个回文[“w”],然后在列表中返回整个字符串[“w”,“h”,...]

共有1个答案

傅朗
2023-03-14

当执行lengte=palindrome时,您将lengte列表的引用指向palindrome,因此palindrome.append(S[j])也会追加到lengte

你需要复印名单。

longest = palindrome[:]

例如,

def longestPalindrome(s):
    longest = []
    palindrome = []
    for i in range(len(s)):
        for j in range(i, len(s)):
            palindrome.append(s[j])
            if palindrome == palindrome[::-1] and len(palindrome) > len(longest):
                # print(palindrome, i, j)
                longest = palindrome[:]
        palindrome = []
    return ''.join(longest)

print(repr(longestPalindrome("What kind of racecar do you drive?")))
 类似资料:
  • 问题内容: python中是否有内置函数返回两个列表的最长公共子序列的长度? 我试图找到最长的公共子序列,然后得到它的长度,但是我认为必须有一个更好的解决方案。 问题答案: 您可以轻松地将LCS重新装配为LLCS: 演示: 如果您想要最长的公共 子字符串 (一个 不同 但相关的问题, 子 序列是连续的),请使用: 这与动态编程方法非常相似,但是我们跟踪到目前为止找到的最大长度(因为不再保证表中的最

  • 问题内容: 获取最长单词长度的更Python方式是什么: 要么: 或者是其他东西? 是字符串列表。我发现我经常需要这样做,并且在用几个不同的样本量进行计时之后,第一种方法似乎始终如一地更快,尽管在票面价值上似乎效率不高(被叫两次的冗余似乎无关紧要,在第二种方法中发生的更多)这种形式的C代码?)。 问题答案: 我认为两者都可以,但是我认为除非速度是最易读的大考虑。 当我看着它们时,我花了更长的时间才

  • 问题内容: 有没有办法在Python中建立一个自动增长的列表?我的意思是制作一个列表,该列表将在引用不存在的索引时增长。基本上是Ruby数组的行为。 提前致谢! 问题答案: 当然有可能,您只需要使用list的子类即可。 用法:

  • 问题内容: 我有一个可变长度的列表,正在尝试寻找一种方法来测试当前正在评估的列表项是否是列表中包含的最长字符串。我正在使用Python 2.6.1 例如: 当然,有一个简单的列表理解功能很简短,但我却忽略了它? 问题答案: 从Python文档本身,您可以使用:

  • 问题内容: 如果我在python中有一个列表(或数组,字典…),它可能会超出可用的内存地址空间,(32位python)有哪些选项和相对速度?(除了不使列表变大之外)列表 可能 超出内存,但我无法事先知道。一旦开始超过75%,我将不再希望将该列表保留在内存中(或者无论如何都不会保留新项目),有没有办法在中途转换为基于文件的方法? 最佳(快进和快出)文件存储选项是什么? 只需要存储一个简单的数字列表。

  • 问题内容: 我正在做一个从列表中返回最长字符串值的函数。当只有一个包含最多字符的字符串时,我的代码有效。如果有多个字符串,我尝试使其打印所有最长的字符串,并且我不希望重复它们。当我运行它时,它只返回“ hello”,而我希望它也返回“ ohman”和“ yoloo”。我觉得问题就在眼前,但是我已经尝试了所有方法,但是没有用。 问题答案: 首先 ,我们可以在列表中找到任何字符串的最大长度: 一点解释