思路:BST

方向 :{a,b,c.......z}

设置一个queue ,记录当前位置

先是外层循环(queue !=  null)   如果 这个循环走完, 说明中间没返回, 直接返回0;

每一次循环 路径++;

然后是 弹出队列中,

然后循环 字符的每一位然后

进行 方向循环,用每一个方向修改字符

如果在wordlist中存在,就放进queue

然后在wordlist删掉当前的

如果直接满足endword

直接返回

class Solution {public static int ladderLength(String beginWord, String endWord, List<String> wordList) {int n = beginWord.length();HashSet<String> set = new HashSet<>();for(String s : wordList){//System.out.println(s);set.add(s);}char[] direction = {'q','w','e','r','t','y','u','i','p','o','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m'};Queue<String> queue = new LinkedList<>();queue.add(beginWord);int ans = 0;while(!queue.isEmpty()){ans ++;int size = queue.size();while(size -- > 0)//往外弹 {StringBuilder str = new StringBuilder(queue.poll());for(int i = 0; i < n; i ++){//System.out.println(str);//System.out.println(":    "+i);for(char c : direction){StringBuilder A = new StringBuilder(str);A.setCharAt(i, c);String item= new String(A);//System.out.println(item + "   1111");if(set.contains(item)){//System.out.println(item + "2222");queue.add(item);set.remove(item);if(endWord.equals(item))return ans + 1; }}}}//System.out.println(queue.size() + ": size");}return 0;}
}

leetcode 127 单词接龙相关推荐

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

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

  2. Java实现 LeetCode 127 单词接龙

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

  3. LeetCode 127. 单词接龙(C++)*

    思路: 1.如果采用回溯法来的话会超时: 2.这里采用构造图和广度优先遍历结合来实现:首先要构造图,需要将每个字符串对应一个数字id,然后边的构造使用矩阵来实现,这里采用将每一个字符串的id连接每个将 ...

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

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

  5. LeetCode 127. 单词接龙(广度优先遍历)

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

  6. leetcode 127 单词接龙

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

  7. Leetcode 127. 单词接龙 解题思路及C++实现

    解题思路: 首先判断wordList中是否有endWord,如果没有,就返回0. pathCount用来存储beginWord转换到某一个word所需的长度,有点类似于动态规划中用于记录状态的矩阵. ...

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

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

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

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

最新文章

  1. 基础篇-verilog-实现循环左移右移
  2. BF,KMP,BM三种字符串匹配算法性能比较
  3. 攻略:如何快速赚取积分,Get云栖大会资料
  4. Qt 如何处理密集型耗时的事情
  5. Linux ps aux查看进程
  6. 花了20分钟,给女朋友们写了一个web版群聊程序
  7. Matlab Tricks(二十八)—— 笛卡尔积的实现
  8. c++rs法计算hurst指数_计算机组成原理与接口技术
  9. Encrypt java_ESAPI对称加密使用JavaEncryptor
  10. SQLI DUMB SERIES-10
  11. 【Python】Python学到什么程度可以面试工作?------持续更新 ...
  12. 通达信标记符号_通达信指标中赋值符号“:”、“=”、“:=”区别?
  13. 【动手学深度学习】06-ResNet解析
  14. php表格怎么移动,excel如何移动或复制列
  15. 研发管理-项目内部立项流程
  16. ThreeJS程序员兼职副业平台推荐
  17. 6点让吃鸡游戏成为热点
  18. flash air 声音录制
  19. 【蓝桥软件学院】泛型类、泛型方法及泛型应用
  20. #DeepLearningBook#算法概览之十:Deep Generative Models

热门文章

  1. <转>OSPF OE2和OE1外部路由详解(主要解释了下OE2为什么没默认负载均衡)
  2. ORA-01422: exact fetch returns more than requested number of rows
  3. python自动化之word操作用python做邀请函
  4. Elasticsearch中聚合的解释及使用
  5. 什么是数据描述统计分析指标?
  6. 设计模式 ----- 设计模式总结
  7. 【SIP教程】 SDP(Session Description Protocol)会话描述协议
  8. 优质的ppt图标素材推荐,不容错过
  9. 一阶常微分方程(一)| 存在与唯一性定理 + 变量分离 + 齐次方程
  10. logit方程怎么写_微分方程(2)-一阶常微分方程的解法