前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题-python3 查找字符串数组中的最长公共前缀

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

作者头像
上海-悠悠
发布2021-05-17 16:41:48
1.7K0
发布2021-05-17 16:41:48
举报
文章被收录于专栏:从零开始学自动化测试

python测开笔试题

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

解决代码

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

代码语言:javascript
复制
"""
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""
输入: ["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

    return common_str

if __name__ == '__main__':
    a = ["flower", "flow", "flight"]
    print(get_common_str(a))
    b = ["dog", "racecar", "car"]
    print(get_common_str(b))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python测开笔试题
  • 解决代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档