Python 在字符串列表中查找最长的公共前缀字符串

Python 在字符串列表中查找最长的公共前缀字符串,python,Python,我正在使用python,我必须编写一个函数,在字符串列表中查找最长的公共前缀字符串。 例如,输入参数是[“flower”、“flow”、“flight”], 输出为“fl”。如果输入字符串之间没有公共前缀, 输出为空字符串。您可以将字符串压缩在一起zip(*list\u o\u strings)这将为您提供类似('f','f','f')的元组。。如果将它们传递给一个集合,当所有字母相同时,该集合将只有一个值。只需在拉链上打圈,直到你碰到一个长度大于1的套子 def common_prefix(l

我正在使用python,我必须编写一个函数,在字符串列表中查找最长的公共前缀字符串。
例如,输入参数是
[“flower”、“flow”、“flight”]
, 输出为
“fl”
。如果输入字符串之间没有公共前缀,
输出为空字符串。

您可以将字符串压缩在一起
zip(*list\u o\u strings)
这将为您提供类似
('f','f','f')的元组。
。如果将它们传递给一个集合,当所有字母相同时,该集合将只有一个值。只需在拉链上打圈,直到你碰到一个长度大于1的套子

def common_prefix(l):
    s = ''
    for c, *rest in  map(set, zip(*l)):
        if rest:  # rest will be empty of the set is shorter than 1
            return s
        s += c
    
common_prefix(["flower", "flow", "flight"])
# 'fl'

common_prefix(["flower", "flow", "flog"])
# 'flo'

common_prefix(["glower", "flow", "flight"])
# ''
输出:

['flower', 'flow', 'flight']
Prefix is fl
['lower', 'low', 'light']
Prefix is l
['ower', 'ow', 'ight']
Prefix is

马克的溶液是真正的蟒蛇溶液
['flower', 'flow', 'flight']
Prefix is fl
['lower', 'low', 'light']
Prefix is l
['ower', 'ow', 'ight']
Prefix is