【LeetCode】14. Longest Common Prefix 解题报告(Python)
题目地址:https://leetcode.com/problems/longest-common-prefix/
题目描述
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.
解法1:排序,比较首位字符串
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs:
return ""
strs.sort()
size = min(len(strs[0]), len(strs[-1]))
i = 0
while i < size and strs[0][i] == strs[-1][i]:
i += 1
return strs[0][:i]
解法2:暴力求解,按照长度最小的字符串遍历
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if not strs or not min([len(str) for str in strs]):
return ""
for i in range(min([len(str) for str in strs])):
pre = strs[0][i]
if not all(str[i] == pre for str in strs):
i -= 1
break
return strs[0][:i+1]
min用法补充
pre = min(strs, key = len) # 求最小长度字符串