class Solution(object):
def longestCommonPrefix(self, strs):
if len(strs)==0:
return ""
result=""
s_len=len(strs[0])
for l in strs:
s_len=min(s_len,len(l))
for i in range(s_len):
ch=strs[0][i]
for j in range(1,len(strs)):
if strs[j][i]!=ch:
return result
result+=ch
def longestCommonPrefix(self, strs):
if len(strs)==0:
return ""
result=""
s_len=len(strs[0])
for l in strs:
s_len=min(s_len,len(l))
for i in range(s_len):
ch=strs[0][i]
for j in range(1,len(strs)):
if strs[j][i]!=ch:
return result
result+=ch
return result
这个题的解法非常好,有几个小技巧。寻找数组中长度最小的字符串,按它的长度for循环进行比较。另外,从第二个字符串开始循环,比较是否和第一个字符串的同一位置是否相等。
几个疑问:
1.if后为什么没有else,这样会不会当strs为空时,仍然执行后面程序。
2.在不等于的情况下,return result代码会不会每次都执行啊?那岂不是返回很多“”。
3.resul+=ch对齐于第二个for循环,会不会不管前面相不相等都会执行这行代码呢?