华为OD机试 - 单词接龙(Python)| 真题,思路,知识点

本文介绍了华为OD机试中的一道单词接龙题目,讲解了题目要求、输入输出格式,并提供了解题思路和核心知识点。通过排序和startswith()函数,找出能接上前一个单词的最长且字典序最小的单词,实现单词串的拼接。最后给出了Python代码实现和运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单词接龙

题目

单词接龙的规则是:
可用于接龙的单词,首字母必须要与前一个单词的尾字母相同;
当存在多个首字母相同的单词时,取长度最长的单词;
如果长度也相等,则取字典序最小的单词;
已经参与接龙的单词不能重复使用;
现给定一组全部由小写字母组成的单词数组,
并指定其中一个单词为起始单词,进行单词接龙,
请输出最长的单词串。
单词串是单词拼接而成的,中间没有空格。

单词个数 1 < N < 20
单个单词的长度 1 ~ 30

输入

输入第一行为一个非负整数,表示起始单词在数组中的索引 k
0 <= k < N
输入的第二行为非负整数 N ,接下来的 N 行分别表示单词数组中的单词

输出

输出一个字符串表示最终拼接的单词串

示例一

输入

0
6
word
dd
da
dc
dword
d

输出

worddwordda

示例二

输入

4
6
word
dd
da
dc
dword
d

输出

dwordda

解题思路

该机试题的解题思路是:使用排序和字符串拼接的方法,对给定的字符串列表进行操作

从给定的字符串列表中选择一个元素(索引为 k 的元素),将它添加到 builder 字符串中,然后从列表中删除该元素。

然后,使用 sorted 函数对字符串列表进行排序,关键字使用 lambda 表达式定义,该表达式按长度倒序排序,如果长度相同,则按字典顺序排序。

核心知识点

  • 排序函数
  • startswith() 函数

Python 代码实现

def solve
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想橡皮擦

如有帮助,来瓶可乐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值