给定一个字符串s,找出最长的回文子串。不明白为什么代码没有返回正确的答案。

class Solution(object):
    def longestPalindrome(self, s):
        current = ""
        ans = ""

        for n in range(len(s)):
            for index in range(n,len(s)):
                current += s[index]
                print(current)
                if self.ispalindrome(current):
                    print(len(ans),len(current))
                    ans = max(ans,current)
            current = ""
        return ans

    def ispalindrome(self, s):
        return s == s[::-1]

我不明白为什么max函数最后在最后一次迭代时选择两个字符串中较小的一个。问题来自LeetCode。https:/leetcode.comproblemslongest-palindromic-substring.

解决方案:

max(ans, current) 按词法返回最新的字符串,而不是最长的字符串。

你可以使用 max(ans, current, key=len) 而不是。即根据给定函数,取两个位置参数的最大值。len.

给TA打赏
共{{data.count}}人
人已打赏
未分类

oauth调用后如何获得重定向的网址?

2022-9-7 23:17:22

未分类

我如何从.net核心控制台应用中发出SAML请求?

2022-9-7 23:28:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索