最长公共前缀
Longest Common Prefix
本机进度仅保存在当前浏览器
题目描述
编写一个函数来查找字符串数组中的最长公共前缀,不存在公共前缀时返回空串。
示例:["flower", "flow", "flight"] 输出 "fl";["dog", "racecar", "car"] 输出 ""。
解题思路
- 纵向扫描:以第一个串为基准逐列比较,第 i 列所有字符相同则前缀延长一格,否则立即停止。
- 也可以横向两两归并(前两个的公共前缀再与第三个比较),复杂度相同。
- 任一字符串率先耗尽也应当停止,注意下标越界。
参考实现
查看参考实现Python · 建议先自行作答
def longestCommonPrefix(strs):
# 以第一个串为基准逐列比较
for i, ch in enumerate(strs[0]):
for s in strs[1:]:
if i == len(s) or s[i] != ch:
return strs[0][:i]
return strs[0]