当前位置: 首页 > wzjs >正文

温州手机网站建设wmwl郑州高端网站制作

温州手机网站建设wmwl,郑州高端网站制作,新建的网站必须要备案吗,哪里找做网站客户题目 输入两个长度相同但内容不同的单词(beginWord和endWord)和一个单词列表,求从beginWord到endWord的演变序列的最短长度,要求每步只能改变单词中的一个字母,并且演变过程中每步得到的单词都必须在给定的单词列表中…

题目

输入两个长度相同但内容不同的单词(beginWord和endWord)和一个单词列表,求从beginWord到endWord的演变序列的最短长度,要求每步只能改变单词中的一个字母,并且演变过程中每步得到的单词都必须在给定的单词列表中。如果不能从beginWord演变到endWord,则返回0。假设所有单词只包含英文小写字母。
例如,如果beginWord为"hit",endWord为"cog",单词列表为[“hot”,“dot”,“dog”,“lot”,“log”,“cog”],则演变序列的最短长度为5,一个可行的演变序列为"hit"→"hot"→"dot"→"dog"→"cog"。

分析

应用图相关算法的前提是找出图中的节点和边。这个问题是关于单词的演变的,所以每个单词就是图中的一个节点。如果两个单词能够相互演变(改变一个单词的一个字母能变成另一个单词),那么这两个单词之间有一条边相连。
在这里插入图片描述
为了求得两个节点之间的最短距离,常见的解法是用两个队列实现广度优先搜索算法。一个队列queue1中存放离起始节点距离为d的节点,当从这个队列中取出节点并访问的时候,与队列queue1中节点相邻的节点离起始节点的距离都是d+1,将这些相邻的节点存放到另一个队列queue2中。当队列queue1中的所有节点都访问完毕时,再访问队列queue2中的节点,并将相邻的节点放入queue1中。可以交替使用queue1和queue2这两个队列由近及远地从起始节点开始搜索所有节点。

解: 单向广度优先搜索

public class Test {public static void main(String[] args) {List<String> wordList = Arrays.asList("hot", "dot", "dog", "lot", "log", "cog");int result = ladderLength("hit", "cog", wordList);System.out.println(result);}public static int ladderLength(String beginWord, String endWord, List<String> wordList) {Queue<String> queue1 = new LinkedList<>();Queue<String> queue2 = new LinkedList<>();Set<String> notVisited = new HashSet<>(wordList);int length = 1;queue1.add(beginWord);while (!queue1.isEmpty()) {String word = queue1.remove();if (word.equals(endWord)) {return length;}List<String> neighbors = getNeighbors(word);for (String neighbor : neighbors) {if (notVisited.contains(neighbor)) {queue2.add(neighbor);notVisited.remove(neighbor);}}if (queue1.isEmpty()) {length++;queue1 = queue2;queue2 = new LinkedList<>();}}return 0;}private static List<String> getNeighbors(String word) {List<String> neighbors = new LinkedList<>();char[] chars = word.toCharArray();for (int i = 0; i < chars.length; i++) {char old = chars[i];for (char ch = 'a'; ch <= 'z'; ++ch) {if (old != ch) {chars[i] = ch;neighbors.add(new String(chars));}}chars[i] = old;}return neighbors;}}
http://www.dtcms.com/wzjs/5600.html

相关文章:

  • 怎样评价一个网站做的好与不好培训机构加盟店排行榜
  • 建筑工程公司注册条件优化网站排名需要多少钱
  • 做一家新闻媒体网站多少钱做销售记住这十句口诀
  • 做借贷网站平台网页制作代码模板
  • 太原网站开发团队seo搜索排名优化
  • 转做批发鞋子的网站百度在线翻译
  • 企业数据查询网站百度搜索一下百度
  • 最便宜做个网站多少钱网站在线生成app
  • 上传自己做的网站淘宝店铺转让价格表
  • 网站开发百灵鸟深圳产品网络推广
  • 文教设施网站制作方案百度推广方案
  • wordpress versionseo搜索引擎优化怎么做
  • 我想采集散文 做网站seo技术分享免费咨询
  • 大连微信网站制作域名注册购买
  • 网站做直播需要办理什么证泰安百度推广公司
  • 建设网站需要体现的流程有哪些数据分析培训机构哪家好
  • 如何做家居网站百度竞价代运营托管
  • 一般做网站需要什么框架郑州做网站推广哪家好
  • 网站开发项目需求分析说明书成品网站源码
  • 福田做商城网站建设哪家便宜营销策划精准营销
  • 网站恶意镜像舆情视频
  • 外贸b2c网站建设服务智慧软文网
  • 网页翻译功能在哪便宜的seo官网优化
  • 网站开发行业竞争快速网站推广公司
  • wap建设网站seo实战优化
  • 电商一共有什么平台保定seo推广外包
  • 毛坯房最便宜装修方法优化人员配置
  • 移动网站建设作业电商运营推广
  • 网站建设与电子商务的教案中国十大网站
  • 四川电子商务网站webview播放视频