Longest Common Prefix
来源:互联网 发布:网络浪涌保护器 编辑:程序博客网 时间:2024/06/05 16:47
Write a function to find the longest common prefix string amongst an
array of strings.
解法一:
巧妙运用zip函数
class Solution: # @return a string def longestCommonPrefix(self, strs): if not strs: return "" for i, letter_group in enumerate(zip(*strs)): if len(set(letter_group)) > 1: return strs[0][:i] else: return min(strs)
如以[‘ascd’,’ascdd’,’asefd’]做测试,zip(strs)返回的结果为:
[(‘ascd’,), (‘ascdd’,), (‘asefd’,)]
为了将字符分开,我们使用zip(*strs)
[(‘a’, ‘a’, ‘a’), (’s’, ‘s’, ‘s’), (‘c’, ‘c’, ‘e’), (‘d’, ‘d’, ‘f’)]
然后对不重复字符计数即可。
解法二:
reduce()函数巧妙应用。
class Solution: def lcp(self, str1, str2): i = 0 while (i < len(str1) and i < len(str2)): if str1[i] == str2[i]: i = i+1 else: break return str1[:i] # @return a string def longestCommonPrefix(self, strs): if not strs: return '' else: return reduce(self.lcp,strs)
reduce()函数接收的参数和 map()类似,一个函数 f,一个list,对list的每个元素反复调用函数f,并返回最终结果值。
此例中对每两个字符串进行公共前缀提取,得到的结果与下一个字符串进行同样操作,得到所有字符串的最长公共前缀。
0 0
- LeetCode: Longest Common Prefix
- LeetCode Longest Common Prefix
- LeetCode : Longest Common Prefix
- [Leetcode] Longest Common Prefix
- leetcode6:Longest Common Prefix
- leetcode22: longest common prefix
- [LeetCode] Longest Common Prefix
- Leetcode14: Longest Common Prefix
- Longest Common Prefix
- Longest Common Prefix
- Longest Common Prefix
- [LeetCode]Longest Common Prefix
- Longest Common Prefix
- LeetCode-Longest Common Prefix
- Longest Common Prefix
- [LeetCode] Longest Common Prefix
- Longest Common Prefix
- LeetCode - Longest Common Prefix
- 迭代深搜+A*(IDA*)
- @import调用css和link href调用区别
- ORA-01102: cannot mount database in EXCLUSIVE mode
- 欢迎使用CSDN-markdown编辑器
- 上下界网络流学习总结
- Longest Common Prefix
- 我自己的视图业务数据库模式
- Fragment使用姿势之NoFragment
- zoj2208
- windows环境下面配置pip环境变量
- 关系型数据库的优缺点
- centos 7安装jdk
- HTTP之请求响应内容详解
- vs2012 32位64 来回编译运行提示0xc000007b错误