• 20天拿下华为OD笔试之【模拟】2023B-查字典【欧弟算法】全网注释最详细分类最全的华为OD真题题解


    【模拟】2023B-查字典

    题目描述与示例

    题目描述

    输入一个单词前缀和一个字典,输出包含该前缀的单词。

    输入

    单词前缀+字典长度+字典。字典是一个有序单词数组。输入输出都是小写

    输出

    所有包含该前缀的单词,多个单词换行输出

    若没有则返回-1

    示例一

    输入

    b 3 a b c
    
    • 1

    输出

    b
    
    • 1

    示例二

    输入

    abc 4 a ab abc abcd
    
    • 1

    输出

    abc
    abcd
    
    • 1
    • 2

    示例三

    输入

    a 3 b c d
    
    • 1

    输出

    -1
    
    • 1

    解题思路

    本题非常简单,遍历输入的字典中的每一个单词word,利用切片操作word的前缀与给定的前缀prefix比较即可。要注意一下输入的处理。

    代码

    # 题目:2023B-查字典
    # 分值:100
    # 作者:许老师-闭着眼睛学数理化
    # 算法:模拟
    # 代码看不懂的地方,请直接在群上提问
    
    
    # 将输入的字符串转化为列表
    input_lst = input().split()
    # 要查找的前缀
    prefix = input_lst[0]
    # 单词列表长度
    n = int(input_lst[1])
    # 要查找的单词列表
    words = input_lst[2:]
    
    # 前缀prefix的长度,用于切片
    k = len(prefix)
    
    # 初始化答案列表
    ans = list()
    
    # 遍历单词列表中的每一个单词word
    for word in words:
        # 如果word的前k个字符等于前缀
        if word[:k] == prefix:
            # word是一个符合要求的单词,将其加入答案数组ans中
            ans.append(word)
    
    
    # 如果ans数组最后长度为0,说明不存在前缀为prefix的单词
    # 直接输出-1
    if len(ans) == 0:
        print(-1)
    # 如果ans数组最后长度不为0,依次输出ans中的单词即可
    else:
        for word in ans:
            print(word)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    时空复杂度

    时间复杂度:O(N)。需要遍历N个单词。

    空间复杂度:O(N)

    华为OD算法冲刺训练

    • 华为OD算法冲刺训练目前开始常态化报名!目前已服务100+同学成功上岸!

    • 课程讲师为全网50w+粉丝编程博主@吴师兄学算法 以及小红书头部编程博主@闭着眼睛学数理化

    • 每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!

    • 30+天陪伴式学习,20+直播课时,300+动画图解视频,200+LeetCode经典题,100+华为OD真题,还有简历修改与模拟面试将为你解锁

    • 可查看链接 OD算法冲刺训练课程表 & OD真题汇总(持续更新)

    • 绿色聊天软件戳 od1336了解更多

  • 相关阅读:
    tessafe.sys不兼容驱动程序怎么解决?
    特性Attribute
    畅游青岛旅游系统的设计与实现
    使用dotnet-monitor sidecar模式 dump docker运行的dotnet程序.
    设备指纹技术详解丨设备指纹知多少,看这场直播就够了!
    matrox的RAP4G4C12 CXP采集卡软件安装
    JAVA小游戏 “拼图”
    vue3写一个定时器
    当当API接口开发系列(商品详情页面和按关键词搜索商品列表)
    如何建立含有逻辑删除字段的唯一索引
  • 原文地址:https://blog.csdn.net/weixin_48157259/article/details/131769295