题目链接
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.
python代码实现
class Solution:
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if len(strs) == 0:
return ''
if len(strs) == 1:
return strs[0]
first = strs[0]
count = 0
# print(min(strs, key=lambda x: len(x)))
for index in range(0, len(min(strs, key=lambda x: len(x)))):
for j in range(1, len(strs)):
# try:
temp = strs[j][index]
# except IndexError:
# temp = ''
if temp == first[count]:
if j + 1 == len(strs):
count += 1
else:
return first[:count]
return first[:count]
# **************************************************
python第二种方式:
class Solution:
def longestCommonPrefix(self, strs):
# 第二种方式
if not strs:
return ""
print(list(zip("flower", "flow", "flight")))
print(list(zip(*strs)))
for i, words in enumerate(zip(*strs)):
if len(set(words)) > 1:
return strs[0][:i]
else:
return min(strs)
s = Solution()
# res = s.longestCommonPrefix(["c", "acc", "ccc"])
res = s.longestCommonPrefix(["flower", "flow", "flight"])
print(res)