LeetCode刷题之14.最长公共前缀
我不知道将去向何方,但我已在路上! |
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |
- 题目:
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。
- 示例:
示例1:
输入: ["flower","flow","flight"]
输出: "fl"
示例2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if len(strs) == 1:
return(strs[0])
if len(strs) == 0 :
return("")
a = 0
for i in range(len(min(strs, key=len))):
for j in range(0,len(strs)):
if strs[j][i] != strs[0][i]:
return(strs[0][:a])
a += 1
return strs[0][:a]
- 算法说明:
首先除去只有0个元素和1个元素的情况;求出所有元素的最小长度i,作为外面一层的循环,表示第j个元素第i位置值;求出strs的所有元素的个数j,做为里层的循环,在元素之间进行遍历;用a作为计数值,直接和第一个元素的i位置的值进行比较,如果遇到不同的元素直接返回第一个元素中长度为a的元素,即strs[0][:a];如果所有元素相同,a的值+1,继续循环,直至结束。