ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-06-02 20:53:53  阅读:244  来源: 互联网

标签:面试题 前缀 min common str 字符串 输入 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))

标签:面试题,前缀,min,common,str,字符串,输入,python3
来源: https://blog.51cto.com/u_15249893/2848067

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有