标签:单词 flag https OLE 解题思路 lang href sem list
题目中有个关键词:最短转换序列的长度,我们知道常见的搜索算法有两种:DFS和BFS,那么本题适用哪种算法呢?两种都适用吗?
记住题目中如果出现最短关键字一定要采用BFS搜索算法去解决,而不是采用和我一样采用DFS(一开始死磕DFS,搞了一下午还是没有搞出来!)
下图是两种算法的总结:
class Solution {
public boolean cmpStr(String fir,String sed){
if(fir.length() != sed.length()) return false;
int ans = 0;
for(int i = 0; i < fir.length(); i++){
if(fir.charAt(i) != sed.charAt(i)) ans++;
if(ans > 1) return false;
}
return true;
}
public int ladderLength(String beginWord, String endWord, List<String> wordList) {
if(wordList.contains(endWord) == false) return 0;
int ans = 0;
Queue<String> q = new LinkedList<>();
Set<String> s = new HashSet<>();
s.add(beginWord);
q.offer(beginWord);
boolean flag = false;
while(!q.isEmpty()){
int size = q.size();
ans++;
for(int i = 0; i < size; i++){
String temp = q.poll();
if(temp.equals(endWord)){
flag = true;
break;
}
for(int j = 0; j < wordList.size(); j++){
String a = wordList.get(j);
if(cmpStr(a,temp)==true){
if(s.add(a) == true) q.offer(a);
}
}
}
if(flag == true) break;
}
if(flag == true) return ans;
else return 0;
}
}
标签:单词 flag https OLE 解题思路 lang href sem list
原文地址:https://www.cnblogs.com/XDU-Lakers/p/13945927.html