Q14 Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings.

解题思路:

依次取第一个字符串的各个字符,判断剩余字符串的前缀是否包含此字符,如果全部包含,则该字符为最长公共前缀的一员;否则,前缀到此结束。

Python实现:
class Solution:
    def longestCommonPrefix(self, strs):
        """
        :type strs: List[str]
        :rtype: str
        """
        lens = len(strs)
        if lens == 0:
            return ''
        if lens == 1:
            return strs[0]
        pre = ''
        for i in range(len(strs[0])):  
            ch = strs[0][i]  # 依次取第一个字符串的各个字符
            count = 0
            for j in range(1, lens): # 判断剩余字符串的前缀有没有包含此字符
                if len(strs[j]) > i and strs[j][i] == ch:  
                    count += 1
            if count == lens - 1:
                pre += ch
            else:
                return pre
        return pre

a = ['abc','ab','abcd','a']
b = Solution()
print(b.longestCommonPrefix(a))   # a

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网开发者交流社区

ArrayList Vector LinkedList(一)

11560
来自专栏Java成神之路

Java_数据交换_dom4j_01_解析xml

10320
来自专栏一“技”之长

Swift3.0带来的变化汇总系列二——集合类型中的变化

    与字符串类似,Swift中集合的类型在3.0版本中也做了大量API上面的修改。

9610
来自专栏小二的折腾日记

day5(面向对象2)

8730
来自专栏石奈子的Java之路

原 java数据结构与算法之数组篇

21440
来自专栏好好学java的技术栈

“面试不败计划”:集合知识整体总结

14530
来自专栏微信公众号:Java团长

大公司最喜欢问的Java集合类面试题

看了一些所谓大公司的JAVA面试问题,发现对于JAVA集合类的使用都比较看重似的,而自己在这方面还真的是所真甚少,抽空也学习学习吧。

10320
来自专栏苦逼的码农

【链表问题】删除单链表的中间节点

以专题的形式更新刷题贴,欢迎跟我一起学习刷题,相信我,你的坚持,绝对会有意想不到的收获。每道题会提供简单的解答,如果你有更优雅的做法,欢迎提供指点,谢谢。

12340
来自专栏java一日一条

Java核心技术点之集合框架

Java集合框架由Java类库的一系列接口、抽象类以及具体实现类组成。我们这里所说的集合就是把一组对象组织到一起,然后再根据不同的需求操纵这些数据。集合类型就是...

8210
来自专栏郭耀华‘s Blog

Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法

Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法 ArrayList 和Vector是采用...

41680

扫码关注云+社区

领取腾讯云代金券