ZHIEND质问神明 2021-07-25 17:27 采纳率: 0%
浏览 40

python如何实现成语接龙的最小路径问题?

问题很简单,在给出的成语中,在能够接龙的前提下,找到成语的最短路径,每个成语只能使用一次,接龙即:前一个成语的最后一个字和后一个成语的最后一个字相同,最短路径即 组成接龙的成语数量最少

  • 写回答

1条回答 默认 最新

  • 关注

    把成语放到字典中成语的第一个字作为字典的键,用广度优先方式遍历就好
    你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

    st = input("请输入成语中接龙的起始字:")
    et = input("请输入成语中接龙的结束字:")
    li = input("请输入多个成语(以空格分隔):").split(" ")
    def jl(li,st,et):
        dic = {}
        for v in li:
            dic.setdefault(v[0],[]).append(v)
        r = {st:[]}
        while len(r)>0:
            tr = {}
            for k,v in r.items():
                if k in dic:
                    for c in dic[k]:
                        if c not in v:
                            tr[c[-1]] = v + [c]
                            if c[-1]==et:
                                return tr[c[-1]]
            r = tr
        return "无法接龙"
    
    print(jl(li,st,et))
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月25日

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?