Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string “”.
Example 1:
Input: [“flower”,“flow”,“flight”]
Output: “fl”
Example 2:
Input: [“dog”,“racecar”,“car”]
Output: “”
Explanation: There is no common prefix among the input strings.
Note:
All given inputs are in lowercase letters a-z.
解法
按照字符串的长度排序, 找到最短的字符串, 对它进行遍历, 查看其它字符串是否包含前缀, 如果不包含则立即返回结果.
Time: O(m*n), m是最短字符串的长度, n是列表的长度
Space: O(1)
代码
class Solution:
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
ans = ''
# edge case
if len(strs) == 0: return ans
# sort the strs by the length
strs.sort(key = lambda x: len(x))
word = strs[0]
for i in range(len(word)):
for str in strs:
if str[i] != word[i]:
return ans
ans += word[i]
return ans