用 Python 编写的程序,从字符串列表中查找最长公共前缀

pythonserver side programmingprogramming更新于 2026/1/10 21:32:17

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

因此,如果输入为 ["antivirus", "anticlock", "antigravity"],则输出为 "anti"

要解决这个问题,我们将遵循以下步骤 −

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

  • 前缀 := 新列表
  • 标志 := 0
  • 对于范围为 0 到 words[0] 大小的 i,执行
    • 对于 words 中的每个 j,执行
      • 如果 j[i] 与前缀的最后一个元素不同,则
        • 从前缀中删除最后一个元素
        • flag := 1
        • 退出循环
    • 如果 flag 与 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

相关文章


有用资源