LeetCode题解(0014):多个字符串的最长公共前缀(Python)
发布日期:2021-06-29 19:51:37 浏览次数:3 分类:技术文章

本文共 803 字,大约阅读时间需要 2 分钟。

题目:(简单)

标签:字符串

解法 时间复杂度 空间复杂度 执行用时
Ans 1 (Python) O ( N × M ) O(N×M) O(N×M) : 其中M为字符串数量 O ( 1 ) O(1) O(1) 40ms (78.57%)
Ans 2 (Python) O ( N × M ) O(N×M) O(N×M) : 其中M为字符串数量 O ( 1 ) O(1) O(1) 32ms (97.34%)

解法一(粗暴比较):

def longestCommonPrefix(self, strs: List[str]) -> str:    # 处理空列表的情况    if len(strs) == 0:        return ""    # 统计最长的字符串长度    min_len = min([len(s) for s in strs])    # 处理只有空字符串的情况    if min_len == 0:        return ""    for i in range(min_len):        t = strs[0][i]        for s in strs:            if s[i] != t:                return strs[0][0:i]    return strs[0][0:min_len]

解法二(转换组的方向进行比较):

def longestCommonPrefix(self, strs: List[str]) -> str:    ans = ""    for s in zip(*strs):        if len(set(s)) != 1:            return ans        else:            ans += s[0]    return ans

转载地址:https://dataartist.blog.csdn.net/article/details/106755402 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode题解(0020):有效的括号(Python)
下一篇:LeetCode题解(0013):将罗马数字转换为整数(Python)

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月04日 15时26分33秒