输入一个单词前缀和一个字典,输出包含该前缀的单词。
单词前缀+字典长度+字典。字典是一个有序单词数组。输入输出都是小写
所有包含该前缀的单词,多个单词换行输出
若没有则返回-1
b 3 a b c
b
abc 4 a ab abc abcd
abc
abcd
a 3 b c d
-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)
时间复杂度:O(N)
。需要遍历N
个单词。
空间复杂度:O(N)
。
华为OD算法冲刺训练目前开始常态化报名!目前已服务100+同学成功上岸!
课程讲师为全网50w+粉丝编程博主@吴师兄学算法 以及小红书头部编程博主@闭着眼睛学数理化
每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!
30+天陪伴式学习,20+直播课时,300+动画图解视频,200+LeetCode经典题,100+华为OD真题,还有简历修改与模拟面试将为你解锁
可查看链接 OD算法冲刺训练课程表 & OD真题汇总(持续更新)
绿色聊天软件戳 od1336
了解更多