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

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;}
}

http://www.xdnf.cn/news/8311.html

相关文章:

  • WDS 无线桥接
  • 交安安全员:交通工程安全领域的关键角色
  • 无人机桥梁检测如何通过数据存储、边缘AI、无线通讯等技术路线,提升检测效率
  • Seata分布式事物案例及详解
  • R语言开始绘图--柱状图
  • 业务场景中使用 SQL 实现快速数据更新与插入
  • MyBatis-Plus 中 QueryWrapper 的 Limit 实现
  • ceph osd 磁盘分区对齐
  • TCP与UDP区别及应用场景详解
  • 力扣HOT100之图论:200. 岛屿数量
  • 【LangChain大模型应用与多智能体开发 ① 初识LangChain 】
  • 用户意图识别模块
  • 跟Gemini学做PPT:字号选择
  • MyBatisPlus使用教程
  • Ubuntu 上进行树莓派交叉编译
  • hadoop 无法存储数据到hbase里面 已经解决
  • 鸿蒙仓颉开发语言实战教程:实现商城应用详情页
  • SpringBoot Day_03|数据校验|异常处理|日志级别|定时器
  • Java使用CollectionUtils集合工具类
  • 大模型相关数据格式及训练器接收的数据格式
  • 云南安全员考试报名需要具备哪些条件?
  • 【深度学习-Day 15】告别“盲猜”:一文读懂深度学习损失函数
  • VSCode C/C++ 开发环境完整配置及一些扩展用途(自用)update:2025/3/31
  • 英语学习5.21
  • 【项目记录】部门增删改及日志技术
  • 超声仿真乳腺体模的主要声学参数
  • 3 PID控制学习指南
  • el-form elform 对齐方式调整
  • mysql安全管理
  • 【C/C++】虚拟内存空间问题整理_可用于验证掌握情况