题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
代码解答
#!/usr/bin/python3
# -*- coding:utf-8 -*-
# 判断最长公共前缀
class Solution:
def longestCommonPrefix(self, strs):
list_str = []
for item in strs:
list_str.append(list(item))
flag = 1
longstr = ''
if len(strs) == 0:
return ''
minlength = len(list_str[0])
for item in list_str:
if(len(item) <= minlength):
minlength = len(item)
for i in range(minlength):
for j in range(len(strs)):
s = list_str[0][i]
if(s != list_str[j][i]):
flag = 0
if(flag == 1):
longstr = longstr + s
return longstr
sol = Solution()
print(sol.longestCommonPrefix(["flower","flow","floght"]))
Tips:
- 采用纵向对比,所以双重循环的i,j不是传统的行和列,而是列和行。
- 需要先比较出list中长度最小的字符串,不然会造成越界
- 自己写代码好慢哦,第一遍写代码总是考虑不完全,都是后面慢慢调试改出来的。加油吧。