- 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
通过次数327,617提交次数849,694
class Solution:
#求字符串数组中最短的字符串长度
def shortest_str(self, strs):
if len(strs) > 0:
shortest_length = len(strs[0])
for s in strs:
now_length = len(s)
if now_length < shortest_length:
shortest_length = now_length
return shortest_length
else:
return 0
def longestCommonPrefix(self, strs):
#保存最短的字符串长度
shortest_len = self.shortest_str(strs)
#计算数组中字符串的个数
str_list_len = len(strs)
#保存公共前缀的字符
longest_com_pre = []
#循环对比对应位置上的字符是否相同,相同则保存,否则结束对比
for j in range(shortest_len):
flag = True
for k in range(str_list_len-1):
if strs[k+1][j] != strs[k][j]:
flag = False
break
if flag:
longest_com_pre.append(strs[0][j])
else:
break
#如果没有公共前缀,则返回""
if len(longest_com_pre) == 0:
return ""
else:
return "".join(longest_com_pre)
sl = Solution()
r = sl.longestCommonPrefix(["aca","cba"])
print(r)