从Python的字符串列表中找到最长的公共前缀的程序

假设我们有一个小写字符串列表,我们必须找到最长的公共前缀。

因此,如果输入类似于[“ antivirus”,“逆时针”,“ antigravity”],则输出将为“ anti”

为了解决这个问题,我们将遵循以下步骤-

按字母顺序对列表中的单词进行排序

  • 前缀:=一个新列表

  • 标志:= 0

  • 对于范围在0到字[0]大小之间的i,执行

    • 从循环中出来

    • 如果j [i]与前缀的最后一个元素不同,则

    • 从前缀中删除最后一个元素

    • 标志:= 1

    • 从循环中出来

    • 对于每个单词j,

    • 如果标志与1相同,则

    • 连接前缀数组中存在的所有元素后返回字符串

    让我们看下面的实现以更好地理解-

    示例

    class Solution:
       def solve(self, words):
          words.sort()
          prefix = []
          flag = 0
          for i in range(len(words[0])):
             prefix.append(words[0][i])
             for j in words:
                if j[i] != prefix[-1]:
                   prefix.pop()
                   flag = 1
                   break
             if flag == 1:
                break
             return ''.join(prefix)
    ob = Solution()
    words = ["antivirus", "anticlockwise", "antigravity"]
    print(ob.solve(words))

    输入值

    ["antivirus", "anticlockwise", "antigravity"]

    输出结果

    anti
    猜你喜欢