1:题目描述
Write a function to find the longest common prefix string amongst an array of strings.
找出字符串数组中最长的公共前缀
2:题目分析
先设定第一个字符串为最长前缀,依次向后比较,将‘最长前缀’一点点截取。但题目比较坑的地方是没说能输入空字符串,所以在测试之后又要加上考虑空字符串这种情况,否则会提示IndexError
3:解题过程
1 class Solution(object): 2 def longestCommonPrefix(self, strs): 3 """ 4 :type strs: List[str] 5 :rtype: str 6 """ 7 strs_len=len(strs)#获得列表长度 8 if "" in strs or strs_len==0 :#踢出空列表 9 return "" 10 elif strs_len==1:#假如只有一个元素就不要比较了 11 return strs[0] 12 else: 13 i=0 14 temp_str=strs[0] #设置‘最长前缀’为第一个 15 temp_len=len(strs[0])#获取字符串长度 16 while i<strs_len:#遍历列表 17 j=0 18 MIN=min(temp_len,len(strs[i]))#设置MIN,防止检索时忽略‘最长前缀’比当前字符串长的情况 19 while j<MIN: 20 temp_str=temp_str[:MIN] 21 if strs[i][j]!=temp_str[j]: 22 temp_str=strs[i][:j]#截取字符串 23 break 24 j=j+1 25 temp_len=len(temp_str)#这个地方看似不大重要,但因为之前我把他放在了上面的循环中,ε=(´ο`*)))唉 26 i=i+1 27 if len(temp_str)==0:#判断前缀是否为空 28 return "" 29 else: 30 return temp_str
4:解题感悟
①python的确有很多方便的内置函数,但不能因此总想走捷径
②如果发现肉眼看不出的错误,就老老实实的去插入断点,节省感情