搜索
写经验 领红包

华为机试单词接龙(单词接龙题目)

导语:单词接龙(华为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)

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小余创作整理编辑!