> 兴趣爱好
华为机试单词接龙(单词接龙题目)
导语:单词接龙(华为od考试)
题目描述
单词接龙的规则是:可用于接龙的单词,首字母必须要与前一个单词的尾字母相同;当存在多个首字母相同的单词时,取长度最长的单词;如果长度也相等,则取字典序最小的单词;已经参与接龙的单词不能重复使用;现给定一组全部由小写字母组成的单词数组,并指定其中一个单词为起始单词,进行单词接龙,请输出最长的单词串。单词串是单词拼接而成的,中间没有空格。
单词个数 1 < N < 20单个单词的长度 1 ~ 30
输入描述
输入第一行为一个非负整数表示起始单词在数组中的索引k0 <= k < N输入的第二行为非负整数N接下来的N行分别表示单词数组中的单词
输出描述
输出一个字符串表示最终拼接的单词串
示例一
输入
06worddddadcdwordd
Copy
输出
worddwordda
Copy
示例一
输入
46worddddadcdwordd
Copy
输出
dwordda
def parse_line(index1, word_list1): currentChar = word_list1[index1] word_list1.remove(currentChar) wlist1_sorted = sorted(word_list1, key=lambda x: -len(x)) for i in range(len(wlist1_sorted)-1): for j in range(i+1, len(wlist1_sorted)): if len(wlist1_sorted[i]) == len(wlist1_sorted[j]) and wlist1_sorted[i] > wlist1_sorted[j]: wlist1_sorted[i], wlist1_sorted[j] = wlist1_sorted[j], wlist1_sorted[i] for word in wlist1_sorted: if word.startswith(currentChar[-1]): currentChar += word print(currentChar)index = int(input())word_list = [input() for i in range(int(input()))]parse_line(index, word_list)
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小余创作整理编辑!