您的位置:首页 > 科技 > 能源 > 十大猎头公司_个人博客网站教程_郑州seo线上推广系统_海外发布新闻

十大猎头公司_个人博客网站教程_郑州seo线上推广系统_海外发布新闻

2025/4/19 10:01:02 来源:https://blog.csdn.net/qq_41094332/article/details/147129134  浏览:    关键词:十大猎头公司_个人博客网站教程_郑州seo线上推广系统_海外发布新闻
十大猎头公司_个人博客网站教程_郑州seo线上推广系统_海外发布新闻

题目描述

在这里插入图片描述
在这里插入图片描述

题目链接:110. 字符串接龙

代码实现

import collectionsn = int(input())
beginStr, endStr = input().split()
strList = [input() for _ in range(n)]deque = collections.deque()		# 使用队列遍历结点
deque.append([beginStr, 1])		# 存储当前字符串和遍历的到第几个结点
visited = set()					# 存储是否访问过该节点,访问过则跳过
visited.add(beginStr)while deque:word, path = deque.popleft()    # 当前字母和目标字母只相差一个时候,跳出if sum(1 for a, b in zip(word, endStr) if a != b) == 1:print(path + 1)exit()# 遍历字典for next_word in strList:# 下一个字母被构建过边(相差一个时候,构建出边),则跳过if next_word in visited:continue                # 当前字母和下一个字母只相差一个时候,添加遍历cnt_distinct = sum(1 for a, b in zip(word, next_word) if a != b)if cnt_distinct == 1:visited.add(next_word)deque.append([next_word, path + 1])
# 遍历完所有节点,均为找到,则跳出            
print(0)

参考文章:超详细的层层递进三种优化及复杂度分析,附双向 BFS 的 PPT, (C++ / Python / Java / Kotlin)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com