最长公共前缀
题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"</pre>
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。</pre>
说明:
所有输入只包含小写字母 a-z
。
解题思路:
考虑如果字符串长度大于一,可以从最小长度的字符串的首位开始进行对比遍历,用一个指针来表示在此之前的字符是满足要求。遍历每一个字符串,用指针对应的字符与与基准字符串中相应的字符比较,如果不同则前面的子字符串就是所要求的结果;如果全都相同,则指针右移。如果最短字符串结束,则循环立即结束。
Python源码:
class Solution(object):
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ""
short = min(strs)
for i in range(len(short)):
for str in strs:
if short[i] != str[i]:
return short[:i]
欢迎关注我的github:https://github.com/UESTCYangHR