lintcode_78最长公共前缀
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lintcode_78最长公共前缀相关的知识,希望对你有一定的参考价值。
给k个字符串,求出他们的最长公共前缀(LCP)
样例
在 "ABCD" "ABEF" 和 "ACEF" 中, LCP 为 "A"
在 "ABCDEFG", "ABCEFG", "ABCEFA" 中, LCP 为 "ABC"
class Solution: """ @param: strs: A list of strings @return: The longest common prefix """ def longestCommonPrefix(self, strs): if not strs: #strs为空要求返回"" return "" if len(strs)<2: return strs[0] for j in range(len(strs[0])): for i in range(1,len(strs)): if not strs[i]: #列表中存在空元素则返回"",无公共前缀 return "" elif strs[0][j] != strs[i][j]: return strs[0][:j] return strs[0]
以第一个元素作为参照与后面每一个元素比较
九章参考解:
class Solution: # @param strs: A list of strings # @return: The longest common prefix def longestCommonPrefix(self, strs): if len(strs) <= 1: return strs[0] if len(strs) == 1 else "" end, minl = 0, min([len(s) for s in strs]) while end < minl: for i in range(1, len(strs)): if strs[i][end] != strs[i-1][end]: return strs[0][:end] end = end + 1 return strs[0][:end]
以上是关于lintcode_78最长公共前缀的主要内容,如果未能解决你的问题,请参考以下文章