给定两个字符串和一个字典,从头到尾找到最短变换序列的长度,使得:一次只能改变一个字符每个中间词必须存在于字典中
来源:互联网 发布:赵薇事件的始末 知乎 编辑:程序博客网 时间:2024/06/05 16:10
本题源自LeetCode
------------------------------------------------------------------------------
给定的俩个字串和字典中的串是一张无向图,构造一棵图的树,广度遍历(按层)这棵树,每次改变开始串的一个字符,如果在字典中就入队列,并从字典中删除,防止重复。
int ladderLength(string start, string end, unordered_set<string> &dict) { int count=1; unordered_set<string> ret=dict; queue<string> que; que.push(start); while(!que.empty()){ int size=que.size(); //构造树当前层循环 while(size--){ string s=que.front();que.pop(); for(int i=0;i<s.length();i++){ string word=s; for(char j='a';j<='z';j++){ if(s[i]==j) continue; s[i]=j; if(s==end) return count+1; if(ret.count(s)>0){ que.push(s); ret.erase(s); } } s=word; //还原字符串 } } //遍历完一层 加 1 count++; } return 0; }
阅读全文
0 0
- 给定两个字符串和一个字典,从头到尾找到最短变换序列的长度,使得:一次只能改变一个字符每个中间词必须存在于字典中
- 给定一个字符串s和一个单词dict的字典,在s中添加空格来构造一个句子,其中每个单词都是有效的字典单词。
- 给定一个只包含小写字母的字符串,删除重复的字母,每个字母只出现一次。在所有结果中,输出字典顺序最小的。
- 给定一个字符串列表,找出单词中最长单词,可以用l列表中的其他单词一次构建一个字符。返回具有最小字典顺序的最长单词。
- 设计一个算法,给一个字符串进行二进制编码,使得编码后的字符串长度最短
- 请设计一个算法,给一个字符串进行二进制编码,使得编码后字符串的长度最短。
- 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target(容易)
- 写一个函数,输出字符串中字符的字典
- 给出一个2D板和字典中的单词列表,找到棋盘上的所有单词。每个单词必须由顺序相邻单元格的字母构成。不能重复使用
- 数组配对 给定N个整数,N为偶数,是否能找到N/2对,使得每对和能被K整除。注意:每个元素只能出现在一个配对中。public class num9 { public boolean checkP
- 程序员面试金典——解题总结: 9.18高难度题 18.10给定两个字典里的单词,长度相等。编写一个方法,将一个单词变换成另一个单词,一次只改动一个字母。
- 对字符串HELL0_HULU中的字符进行二进制编码,使得字符串的编码长度尽可能短,最短长度为?
- 给定一个字符串s和一个单词dict的字典,确定s是否可以分割成一个或多个字典单词的空格分隔的序列。 s ="leetcode", dict =["leet", "code"].
- 给定固定长度的字符串,求解按字符字典序排列,该字符串是第几小?
- 给定一个单向链表(长度未知),请遍历一次就找到中间的指针,假设该链表存储在只读存储器,不能被修改
- 给定一个字符串,找到最先出现的相同字符
- 给定一个字符串,返回字符串中没有重复字符的最长子串的长度
- Shortest Prefixes 【字典树 求给定字符串的 最短确定前缀】
- HDU 1180-诡异的楼梯
- HTML5页面播放音乐
- 开源机器视觉库
- HDOJ2040
- php.init中关于文件上传的相关选项
- 给定两个字符串和一个字典,从头到尾找到最短变换序列的长度,使得:一次只能改变一个字符每个中间词必须存在于字典中
- 连续子数组求和-LintCode
- 离线赛总结
- Install Chisel Tools on Ubuntu
- string的intern()方法
- 本地虚拟机伪集群dubbo-zookeeper+dubbo demo案例单机集群服务搭建
- 【头条】抢占人工智能至高点,英伟达胜在何处
- WebView停止音乐播放
- 曾鸣:取势、明道、立理、优术