欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 127. 单词接龙

127. 单词接龙

2025/5/24 9:29:48 来源:https://blog.csdn.net/release_lonely/article/details/148168360  浏览:    关键词:127. 单词接龙
https://leetcode.cn/problems/word-ladder/description/?envType=study-plan-v2&envId=top-interview-150

思路:这题好像和上一题 433. 最小基因变化 基本一样,都是通过bfs找最短路径。

class Solution {public int ladderLength(String beginWord, String endWord, List<String> wordList) {boolean exist = false;for(String s : wordList) {if(s.equals(endWord)) {exist = true;break;}}if(!exist) return 0;// 存储字符串s与endWord的最短路径HashMap<String, Integer> map = new HashMap<>();map.put(endWord, 0);map.put(beginWord, -1); // -1代表还没找到最短路径Queue<String> queue = new LinkedList<>();Queue<String> temp = new LinkedList<>();queue.add(endWord);int cnt = 1;while(!queue.isEmpty()) {cnt++;while(!queue.isEmpty()) {String s = queue.poll();// 初始状态能否走到s状态if(differ(beginWord, s) == 1) {return cnt;}for(String str : wordList) {if(!map.containsKey(str) && differ(str, s) == 1) {temp.add(str);map.put(str, cnt);}}}queue = temp;temp = new LinkedList<>();}return 0;}/*** 计算两个字符串之间的差异* @param s 被计算串* @param target 目标串* @return 差异的字符数*/public int differ(String s, String target) {int cnt = 0;for (int i = 0; i < s.length(); i++) {if (s.charAt(i) != target.charAt(i)) {cnt++;}}return cnt;}
}

版权声明:

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

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

热搜词