题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
感觉写了几题Leetcode有了点心得,自己完成了提交,感觉好nice,附上我自己写的代码
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
# 先找出数组中最短的一个字符串
list1 = []
lens = len(strs)
if strs == []: # 如果是空字符串,直接返回""
return ""
else: # 否则求解最短的字符串长度
mins = len(strs[0])
if (mins ==1) and (lens ==1): #如果字符串数组不为空但只有一个元素,直接返回字符串本身
return ''.join(strs)
else: #否则往下进行判断
for i in range(lens):
if len(strs[i]) <= mins:
mins = len(strs[i])
# 开始进行判断
for k in range(0,mins): # 第一层,字符串每个字符的对比
for j in range(1,lens): # 第二层,数组每个元素的对比
if (strs[j][k] == strs[0][k]) and (j != lens-1): # 元素匹配,判断下一个字符串是否有公共前缀
continue
elif(strs[j][k] == strs[0][k]) and (j == lens-1): #每个字符串都有此前缀字符则将其加入列表
list1.append(strs[0][k])
k = k+1
else:
return ''.join(list1) # 没有符合的说明公共前缀已经到达最长,不往下判断
break
return ''.join(list1)
这样就成功啦,当然我的代码非常的基础,看if语句的使用就知道了,捂脸。。。。