给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:

每次转换只能改变一个字母。
转换过程中的中间单词必须是字典中的单词。
说明:

如果不存在这样的转换序列,返回 0。
所有单词具有相同的长度。
所有单词只由小写字母组成。
字典中不存在重复的单词。
你可以假设 beginWord 和 endWord 是非空的,且二者不相同。
示例 1:

输入:
beginWord = “hit”,
endWord = “cog”,
wordList = [“hot”,“dot”,“dog”,“lot”,“log”,“cog”]

输出: 5

解释: 一个最短转换序列是 “hit” -> “hot” -> “dot” -> “dog” -> “cog”,
返回它的长度 5。

代码

class Solution {public int ladderLength(String beginWord, String endWord, List<String> wordList) {Queue<String> queue=new LinkedList<>();boolean[] check=new boolean[wordList.size()];//记录访问了的字符串int len=beginWord.length();for(int i=0;i<wordList.size();i++)//找出与初始字符串只差一位的字符入队{int cnt=0;for(int j=0;j<len;j++){if(wordList.get(i).charAt(j)==beginWord.charAt(j))cnt++;}if(cnt==len-1) {queue.add(wordList.get(i));check[i]=true;}}int res=0;while (!queue.isEmpty())//bfs{int size=queue.size();for(int i=0;i<size;i++){String string=queue.poll();if(string.equals(endWord)) return res+2;//到达了目标字符串for(int j=0;j<wordList.size();j++){if(check[j]) continue;//已经遍历过了int cnt=0;for(int k=0;k<len;k++)//找出与当前字符串只差一位的字符入队{if(wordList.get(j).charAt(k)==string.charAt(k))cnt++;}if(cnt==len-1) {queue.add(wordList.get(j));check[j]=true;}}}res++;}return 0;}
}

leetcode127. 单词接龙(bfs)相关推荐

  1. java单词接龙,LeetCode-127.单词接龙(Word Ladder)

    127. 单词接龙 字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列: 序列中第一个单词是 beginWord .序列中最后一个单词是 ...

  2. leetcode 127. 单词接龙(bfs)

    给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度.转换需遵循如下规则: 每次转换只能改变一个字母. 转换过程中的中 ...

  3. LeetCode 126. 单词接龙 II(图的BFS)

    1. 题目 给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列. 转换需遵循如下规则: 每次转换只能 ...

  4. LeetCode 127. 单词接龙(图的BFS/双向BFS)

    文章目录 1. 题目 2. 图的BFS解题 2.1 单向BFS 2.2 双向BFS !厉害了 1. 题目 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord ...

  5. LeetCode:127 单词接龙 无向图BFS

    LeetCode:127 单词接龙 无向图BFS 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度.转换需遵循如下 ...

  6. 程序员面试金典 - 面试题 17.22. 单词转换(BFS)

    1. 题目 给定字典中的两个词,长度相等. 写一个方法,把一个词转换成另一个词, 但是一次只能改变一个字符. 每一步得到的新词都必须能在字典中找到. 编写一个程序,返回一个可能的转换序列.如有多个可能 ...

  7. 玉米迷宫,Meteor Shower S,单词接龙

    玉米迷宫:- [P1825 [USACO11OPEN]Corn Maze S](https://www.luogu.com.cn/problem/P1825) 这是让我卡了整整一天的题目,虽然说思路不 ...

  8. Java实现 LeetCode 127 单词接龙

    127. 单词接龙 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度.转换需遵循如下规则: 每次转换只能改变一个字 ...

  9. Leetcode.126 单词接龙 II

    题目链接 Leetcode.126 单词接龙 II 题目描述 按字典 wordList完成从单词 beginWord到单词 endWord转化,一个表示此过程的 转换序列 是形式上像 beginWor ...

最新文章

  1. JAVA线程池ScheduledExecutorService周期性地执行任务 与单个Thread周期性执行任务的异常处理...
  2. BZOJ1858 [Scoi2010]序列操作 线段树
  3. 003 辅助框架的代码实现
  4. Eclipse中在线安装spring-tool-suite插件
  5. MySQL数据类型--日期时间
  6. Java黑皮书课后题第6章:6.37(格式化整数)编写一个测试程序,提示用户输入一个数字以及宽度,显示通过调用format方法返回的字符串
  7. Ajax+Node.js前后端交互最佳入门实践(01)
  8. NGINX原理 之 SLAB分配机制(转)
  9. lisp 发凹圆角_css能实现这样的内凹圆角吗?如何实现?具体代码是!!
  10. SpringBoot 服务监控机制,你了解多少?
  11. 毛发及眼球的渲染技术
  12. cms采集系统-批量文章采集支持各大CMS采集
  13. windows系统无法输入激活码
  14. python资产负债表_用Python清理雅虎财务资产负债表
  15. 工作11年后一切归零
  16. 计算机三级考点6:网络关键设备选型。
  17. 前端面试题整理—ES6篇
  18. I.MX6 AW-NB177NF wifi HAL
  19. 如何有效提升网站访问量?你的网站访问量大吗
  20. 单片机IO口控制12V电压通断,MOS和三极管电路

热门文章

  1. 信号 09 | 函数pause
  2. SpringBoot返回json和xml
  3. More DETAILS! PBR的下一个发展在哪里?
  4. bzoj 4009 接水果 整体二分
  5. gitlab 修改HTTP连接方式中的IP和端口
  6. spring eureka集群+spring boot 微服务,容器化部署示例
  7. 逻辑回归的通俗解释 逻辑回归的定位
  8. unity3d 各个目录的意思
  9. XCode、Objective-C、Cocoa 说的是几样东西
  10. 革新以太网交换机架构 全光网络的风刮进园区