方法一:简单的广搜
对于
import javax.swing.plaf.basic.BasicScrollPaneUI;
import java.util.*;
class Node implements Comparable{
String s;
int count;
public Node(String s, int count) {
this.s = s;
this.count = count;
}
@Override
public int compareTo(Object o) {
return 0;
}
}
class Solution {
public int ladderLength(String beginWord, String endWord, List<String> wordList) {
HashSet<String>stringHashSet=new HashSet<>();
for(String s:wordList){
stringHashSet.add(s);
}
Node node=new Node(beginWord,1);
Queue<Node>queue=new LinkedList<>();
queue.offer(node);
HashSet<String>setMark=new HashSet<>();
int length=beginWord.length();
setMark.add(beginWord);
while (queue.isEmpty()==false){
node=queue.poll();
String s=node.s;
int count=node.count;
if(s.equals(endWord)){
return count;
}
for(int i=0;i<length;i++){
for(char c='a';c<='z';c++){
StringBuilder builder=new StringBuilder(s);
builder.setCharAt(i,c);
String temporaryString=builder.toString();
if(stringHashSet.contains(temporaryString)&&setMark.contains(temporaryString)==false){
setMark.add(temporaryString);
Node nodeNew=new Node(temporaryString,count+1);
queue.offer(nodeNew);
}
}
}
}
return 0;
}
}