解题思路:
把这些字符先按字典顺序排序,第一个就是a开头的即使不是,其他的也是排在它后面的,
比如:aaabc ,aaamn, aamna 三者排序为最小aaabc, 最大为 aamn
可以看出公共前缀就在最小和最大字符里产生,为aa,可以多试试看是不是
那么就可以取出最小字符,最大字符,最大公共前缀肯定长度不超过最小字符的长度,比较他俩字符并记下相等的长度就是
可用max,min取值
a = ['ab','abc','bcd','cde','z']
print(max(a),min(a)) #可见按字典序返回最大和最小字符即可比较公共前缀
解
if len(strs)==0: return ""
str0 = min(strs) #取最小字符
str1 = max(strs) #取最大字符
for i in range(len(str0)): #公共前缀长度不大于最小字符长度
if str0[i] != str1[i]: #如果他们的前缀不等就返回长度
return str0[:i]
return str0