Word Ladder
来源:互联网 发布:php 文件上传 测试 编辑:程序博客网 时间:2024/06/04 19:51
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
For 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
.
Note:
- Return 0 if there is no such transformation sequence.
- All words have the same length.
- All words contain only lowercase alphabetic characters.
要求在给定字典dict中寻找可以变幻的词(只有一位不同)确认是否能够转换至 end 一开始想的是用回溯递归进行遍历求解 但是 由太多的重复情况 而且对于dict的管理也比较麻烦 后来变换思维 不从dict中找词匹配 而是建一个栈 先把需要比较的词 按位 从a-z分别替换 再到dict中查找 若该词存在则加入栈 直至栈空 ps;在替换第j位的字母时 使用 String ntmp=com.substring(0, j)+m+com.substring(j+1,com.length());时 总是说 memory limit exceeded 不知道为什么 改为字符数组后就解决了这问题 代码如下:
public static int ladderLength1(String start, String end, Set<String> dict) { LinkedList<String> que=new LinkedList<>(); dict.remove(start); que.offer(start); int count =0; int level =1; int res=1; while(!que.isEmpty()){ count=level; level=0; for(int i=0;i<count;i++){ String com=que.poll(); for(int j=0;j<com.length();j++){ for(char m='a';m<='z';m++){ if(com.charAt(j)==m)continue; String ntmp=com.substring(0, j)+m+com.substring(j+1,com.length()); if(ntmp.equals(end))return res+1; if(dict.contains(ntmp)){ level++; dict.remove(ntmp); que.add(ntmp); } } } } res++; }return 0; }
0 0
- Word Ladder
- Word Ladder
- word ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- Word Ladder
- GEC210(S5PV210)裸机驱动之按键(外部)中断
- git: 如何用git-am来合并git format-patch生成的一系列的patch.
- ORACLE 11g R2 RAC群集堆栈的关闭过程分析
- socket的基本操作
- VC6.0中头文件加载
- Word Ladder
- javascript
- 通过扇区读取文件内容
- Android Process和Thread
- 如何成为一名更加贴心的用户体验设计师
- 三星称今年新款智能电视将全部搭载Tizen系统
- mysql存储过程函数实例
- ONOS白皮书中篇之ONOS架构
- 《高效程序员的45个习惯》作者:掌握多种语言是我的财富