思路一
思路:先查找最短的字符串,赋值给ret,然后从第一个字符串开始两两比较,比较ret与字符串数组里的公共字串。返回最后结果。
代码:
class Solution:
# @param {string[]} strs
# @return {string}
def longestCommonPrefix(self, strs):
if len(strs) == 0:
return ''
elif len(strs) == 1:
return strs[0]
shortestStr = strs[0]
lenOfshortest = len(strs[0])
for each in strs:
if len(each) < lenOfshortest:
shortestStr = each
lenOfshortest = len(each)
ret = self.commonPrefix(shortestStr, strs[0])
for each in strs:
ret = self.commonPrefix(ret, each)
return ret
def commonPrefix(self, str1, str2):
print 'str1', str1, 'str2', str2
ret = ''
for i in range(len(str1)):
if str1[i] == str2[i]:
ret = ret + str1[i]
else:
break
return ret
def main():
test = Solution()
print test.commonPrefix('aa', 'aab')
if __name__ == '__main__':
main()
- result: AC 时间还可以