在字符串数组中查找最长的公共前缀字符串。如果没有公用前缀,则返回空字符串“”

2024-05-12 14:54:36 发布

您现在位置:Python中文网/ 问答频道 /正文

在字符串数组中查找最长的公共前缀字符串。 如果没有公用前缀,则返回空字符串“” 我已尝试编写此问题的代码

以下是代码:

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        a=list(list(zip(*strs))[0])
        b=list(list(zip(*strs))[1])
        c=list(list(zip(*strs))[2])
        a1=""
        i=0
        while(len(strs)):
            if(a[i]==b[i]==c[i]):
                a1+=a[i]
                return a1

我试图通过从列表中提取元素,然后与其他元素进行比较来解决这个问题

不知道它在哪里被击中没有显示输出, 请帮忙


Tags: 字符串代码self元素defa1数组zip
2条回答

最简单的方法就是开始节食。 迭代所有字符串并捕获所有字符串的第一个字符 以计数1和键作为第一个字符将它们添加到dict中 如果发现重复项,则增加dict键上的计数 现在在dict的值中找到最大的数字并存储在变量中

现在,使用2个字符键(起始值为1)对2个字符的build dict重复此过程,如果在字符串列表中发现重复的2个字符,则递增该数字,并用最近dict中的最高值替换先前的变量值

通过增加要检查的字符数重复该过程,直到dict中的最大值为1,并且该值的键是最长的公共前缀

因为len(strs)始终为真,所以程序陷入无限循环。 另一个问题是,您只提取了字符串列表中每个字符串的前三个元素,但最大公共字符串的长度可能大于三个元素

相关问题 更多 >