在字符串数组中找到最长的公共前缀字符串。 如果没有公共前缀,则返回一个空字符串“” 我试图编码这个问题
这是代码:
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
我试图通过从列表中提取元素然后与其他元素进行比较来解决。
不知道它被打到哪里,没有输出显示, 请帮忙!
答案 0 :(得分:0)
最简单的方法可能是开始饮食。 遍历所有字符串并捕获所有字符串的第一个字符 将它们添加到dict中,计数为1,键为第一个字符 如果找到重复项,则增加dict键的计数 现在,找到dict值最大的数字并将其存储在变量中
现在,使用2个字符键(起始值为1)来重复2个字符的dict的生成过程,如果在字符串列表中发现重复的2个字符,则将数字递增,并将前一个变量值替换为最近dict中的最大值。
通过增加要检查的字符数来重复该过程,直到dict中的最高值变为1,并且该值的键是最长的公共前缀
答案 1 :(得分:0)
因为len(strs)
始终为True,所以您的程序陷入了无限循环。
另一个问题是,您只提取了字符串列表中每个字符串的前三个元素,但是最大的公共字符串的长度可能大于三个元素