• 面试题-python3 查找字符串数组中的最长公共前缀


    python测开笔试题

    python测开笔试题: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""
    输入: ["flower","flow","flight"]
    输出: "fl"
    输入: ["dog","racecar","car"]输出: ""
    解释: 输入列表不存在公共前缀,返回""。

    解决代码

    解决思路,先找出最短的字符串,再遍历判断该字符串每个元素的前面索引位置的元素,跟其他字符串是不是一样,如果不是一样结束循环。

    """
    编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""
    输入: ["flower","flow","flight"]
    输出: "fl"
    输入: ["dog","racecar","car"]输出: ""
    解释: 输入列表不存在公共前缀,返回""。
    """
    # 作者-上海悠悠 QQ交流群:717225969
    # blog地址 https://www.cnblogs.com/yoyoketang/
    
    def get_common_str(list_a):
        '''输入列表a,返回公共子串
        输入: ["flower","flow","flight"]
        输出: "fl"
        输入: ["dog","racecar","car"]输出: ""
        '''
        if len(list_a) == 0:
            return ''
        common_str = ''  # 公共字符串
    
        # 先找出最短的字符串
        min_str = min(list_a, key=lambda x: len(x))
        # print(min_str)  # 最短的字符串flow
        for i in range(len(min_str)):
            flag = False  # 退出外部循环标志
            for j in list_a:
                if min_str[i] != j[i]:
                    common_str = min_str[:i]
                    flag = True
                    break
            if flag:
                break
        else:
            return min_str
    
        return common_str
    
    if __name__ == '__main__':
        a = ["flower", "flow", "flight"]
        print(get_common_str(a))
        b = ["dog", "racecar", "car"]
        print(get_common_str(b))
    
  • 相关阅读:
    OSI七层模型详解 TCP/IP协议
    ZT 第一范式,第二范式,第三范式
    思杰20140522
    Correspondence / ˏkɔris'pɔndәns / dictionary10-800.doc
    闲着没事,贴贴图
    心情闲适,发几个tatanic的图
    005 Python 基础特性
    017 虚拟内存 64位及内存对其 3
    004 Python 文件操作 字典 自定义函数
    003 Python list 索引
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/14759093.html
Copyright © 2020-2023  润新知