Python 中從字串列表查詢最長公共字首的程式
假設我們有一個小寫字串列表,我們需要找到最長的公共字首。
因此,如果輸入類似於 ["antivirus", "anticlockwise", "antigravity"],則輸出將為 "anti"
為了解決這個問題,我們將遵循以下步驟 -
按字母順序對列表 words 進行排序
- prefix := 一個新的列表
- flag := 0
- 對於 i 的範圍從 0 到 words[0] 的大小,執行
- 對於 words 中的每個 j,執行
- 如果 j[i] 與 prefix 的最後一個元素不同,則
- 從 prefix 中刪除最後一個元素
- flag := 1
- 退出迴圈
- 如果 j[i] 與 prefix 的最後一個元素不同,則
- 如果 flag 等於 1,則
- 退出迴圈
- 對於 words 中的每個 j,執行
- 返回連線 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
廣告