Python 中從字串列表查詢最長公共字首的程式


假設我們有一個小寫字串列表,我們需要找到最長的公共字首。

因此,如果輸入類似於 ["antivirus", "anticlockwise", "antigravity"],則輸出將為 "anti"

為了解決這個問題,我們將遵循以下步驟 -

按字母順序對列表 words 進行排序

  • prefix := 一個新的列表
  • flag := 0
  • 對於 i 的範圍從 0 到 words[0] 的大小,執行
    • 對於 words 中的每個 j,執行
      • 如果 j[i] 與 prefix 的最後一個元素不同,則
        • 從 prefix 中刪除最後一個元素
        • flag := 1
        • 退出迴圈
    • 如果 flag 等於 1,則
      • 退出迴圈
  • 返回連線 prefix 陣列中所有元素後的字串

讓我們看看以下實現以獲得更好的理解 -

示例

 即時演示

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

更新於: 2020年10月6日

2K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告