最长公共前缀问题是一个经典的字符串处理问题。给定一个字符串数组,找出其中最长的公共前缀。

示例

假设我们有以下字符串数组:

["flower","flow","flight"]

我们可以得出最长的公共前缀是 "fl"

解决方法

这里提供一个简单的解决方案,我们可以使用横向扫描法:

  1. 如果字符串数组为空,则返回空字符串。
  2. 找出字符串数组中最短的字符串。
  3. 使用最短的字符串的前缀与数组中其他字符串的前缀进行比较。
  4. 如果所有字符串都以相同的字符开头,则将前缀长度加一,并继续比较下一个字符。
  5. 如果遇到不同的字符,则返回当前的最长公共前缀。

以下是一个简单的 Python 代码示例:

def longestCommonPrefix(strs):
    if not strs:
        return ""
    shortest = min(strs, key=len)
    for i, char in enumerate(shortest):
        for other in strs:
            if other[i] != char:
                return shortest[:i]
    return shortest

扩展阅读

更多关于字符串处理的算法,可以参考本站的 字符串处理算法教程

图片展示

Flower