什麼是最長共同前綴

最長共同前綴(Longest Common Prefix)是兩或多個字元串中共享的最長開頭部分。例如,對於字元串 "apple" 和 "apricot",它們的最長共同前綴是 "ap"。

在計算機科學中,最長共同前綴是一個重要的概念,尤其是在編程、數據結構和算法領域。它可以用在很多應用程式中,例如在命令行解析、檔案名稱 completion、字元串匹配和數據庫索引等。

在許多程式設計語言中,都有內置的函數或算法可以幫助我們找到給定字元串集合的最長共同前綴。例如,在Python中,可以使用內置的 minlen 函數來找到最長共同前綴:

def lcp(strings):
    prefix = min(strings, key=len)
    for s in strings:
        while s.startswith(prefix):
            prefix = prefix[1:]
            if not prefix:
                return prefix
    return ""

# 示例使用
strings = ["apple", "apricot", "banana"]
print(lcp(strings))  # 輸出: "ap"

這個算法的基本思想是從最短的字元串開始,逐個字元檢查是否與其他字元串開頭匹配。如果某個字元不匹配,則將前綴縮短一個字元,直到所有字元串都匹配或者前綴為空為止。