weixin_47740490 2021-08-09 02:23 采纳率: 33.3%
浏览 393
已结题

Python 算法 单词接龙 单词首尾相同则相连 (空格隔开)

年会上玩单词接龙比赛,挑战者只能从预先准备好的词库说出里面的单词,规则是一个单词的首字母必须和上一个单词的尾字母相同,每个单词只能说一次,说完词库中所有单词即为获胜。给你一个字符串的列表表示词库,请判断分到该词库的挑战者有没有可能挑战成功,如果可能,请返回字典序最小的单词列表;如不可能,请返回空列表。

输入
请从标准输入中读取测试案例,每一个测试案例对应一行输入,每一行输入为一个长为len的字符串数组,数组元素为仅由小写字母组成的字符串,字符串长度为l。(1<=len<=10000,2<=l<=50)

输出
请将计算结果写入标准输出,每一个测试案例对应一行输出,每一行输出为按题意顺序排列的字符串数组。

输入示例
dog green raw neer wand
cat cabin new
apple python next tip elephant
history yet yummy yellow yemen yes young settle
bingo office

输出示例
dog green neer raw wand

apple elephant tip python next

bingo office

  • 写回答

1条回答 默认 最新

  • python收藏家 2021-08-12 17:54
    关注
    lst = ['dog','green', 'raw', 'neer', 'wand']
    vis = []
    ls = lst[:]
    n = 1
    f = True
    
    for a in ls: 
        while lst and n < len(ls):
            for i in lst:
                if a[-1] == i[0]:
                    if f:
                        vis.append(a)
                        f = False
                    tmp = lst.pop(lst.index(i))
                    if tmp not in vis:
                        vis.append(tmp)
                    a = i
            n += 1
            
    print(vis)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    问题事件

    • 系统已结题 8月27日
    • 已采纳回答 8月19日
    • 创建了问题 8月9日

    悬赏问题

    • ¥30 计算机网络子网划分路由模拟操作
    • ¥15 MATLAB的画图问题
    • ¥15 c语言用fopen_s成功打开文件之后闪退
    • ¥20 用C++完成,并且运用数组
    • ¥30 求解电力系统潮流计算结果不收敛问题
    • ¥15 某易易盾点选data解析逆向
    • ¥15 系统崩溃,关于订单的处理
    • ¥15 datax-web连接hive为数据源时发生报错,如何解决?
    • ¥15 plink在进行gwas分析时总读取不到表型
    • ¥20 数据结构与c语言的实践内容