【Lintcode】120.Word Ladder
2024-08-31 06:01:50
题目:
Given two words (start and end), and a dictionary, find the length of shortest transformation sequence from start to end, such that:
- Only one letter can be changed at a time
- Each intermediate word must exist in the dictionary
Example
Given:
start = "hit"
end = "cog"
dict = ["hot","dot","dog","lot","log"]
As one shortest transformation is "hit" -> "hot" -> "dot" -> "dog" -> "cog"
,
return its length 5
.
题解:
BFS
Solution 1 ()
class Solution {
public:
int ladderLength(string start, string end, unordered_set<string> &dict) {
if (start == end) {
return ;
}
int n = start.size();
if (n < || n != end.size()) {
return ;
} queue<string> q;
q.push(start);
dict.erase(start);
int length = ; while (!q.empty()) {
int size = q.size();
for (int i = ; i < size; ++i) {
string cur = q.front();
q.pop();
for (int j = ; j < n; ++j) {
char oldChar = cur[j];
for (char c = 'a'; c <= 'z'; ++c) {
if (c == oldChar) {
continue;
}
cur[j] = c;
if (cur == end) {
return length;
}
if (dict.find(cur) != dict.end()) {
q.push(cur);
dict.erase(cur);
}
}
cur[j] = oldChar;
}
}
++length;
}
return ;
}
};
最新文章
- Windows Phone 四、控件模版
- 用淘宝ip地址库查ip
- 基于CSS3新属性Animation及transform实现类似翻书效果
- DP:斐波纳契数
- jquery slideDown slideUp 对于table无效
- simulink下直接代码生成
- JS线程模型&;Web Worker
- jQuery插件实现select下拉框左右选择_交换内容(multiselect2side)
- hiho 分冶专题
- 为SQL Server 增加链接到SQL Server 的链接服务器
- BZOJ 1652: [Usaco2006 Feb]Treats for the Cows( dp )
- 分布式发布订阅消息系统Kafka
- sql 时间格式
- Phalcon调试大杀器之phalcon-debugbar安装
- win7如何以管理员身份运行命令提示符(cmd)
- 传统方法过渡到ES6去优雅地实现JavaScript的继承
- 《k8s-1.13版本源码分析》-源码调试
- cesium 之地图贴地量算工具效果篇(附源码下载)
- Y1吐槽002 情绪
- 【设计模式】抽象工厂模式(Abstract Factory Pattern)
热门文章
- tomcat报错: Error parsing HTTP request header
- Linux进程间通信(IPC)编程实践(十二)Posix消息队列--基本API的使用
- 还需要学习的十二种CSS选择器
- win7查看端口占用
- centos安装python3.7.0过程记录
- erlang和golang的比较
- python使用模板手记
- 在ios开发中使用 try 和 catch 来捕获错误。
- python 基础 8.0 regex 正则表达式--常用的正则表达式
- EasyPlayerPro Windows播放器进行本地对讲喊话音频采集功能实现