题目: 编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 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语句的使用就知道了,捂脸。。。。