Leetcode 14题 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.
Note:
All given inputs are in lowercase letters a-z.
题目大意: 给出一些单词,找出这些单词相同的前缀字符。
一开始思考的粒度太大了,没有想到其实单词中的字母也可以索引。
例如:
strs = ["flower","flow","flight"]
strs[0] 就是 “flower”
而strs[0][0]就是“flower”中的“f”
所以直接比较即可,上代码。这个代码思路还是很清晰的。
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if len(strs) == 0: 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] #返回相同的值。 [:i]即从0到i。
15/04/2020
疫情中的英国,
加油!