1.思路:取出第一个字符串的字串[:]与剩余的字符串进行匹配,直到匹配不成功时,返回第一个字串的部分的前i个字符串
2.代码
class Solution:
def longestCommonPrefix(self, strs):
j=0
if len(strs)==0:
return ""
elif len(strs)==1 :
if strs[0].strip()!='':
return strs[0]
else:
return ""
else:
strfir=strs[0]
for i in range(len(strfir)):
j=j+1
for j in range(1,len(strs)):
if strs[j].strip()=='':
return ""
if strfir[:i+1]!=strs[j][:i+1]:
return strfir[:i]
if j==0:
return ""
else:
return strs[0]
3.总结
妈呀,写出来这道题真的太不容易了,犯了好几个错误,如下:
①对于取出前i个字串,如“sdf”[:0]对应的是空,只有"sdf"[:1]才会取出第一个字符s,所以在二层循环中处理字串的时候记得i+1处理
②对于特殊字符的处理,如[],[""],["a"],["",""]等处理