File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 1+ class  Solution  {
2+  public  int  ladderLength (String  beginWord , String  endWord , List <String > wordList ) {
3+  Set <String > dict  = new  HashSet <>(wordList );
4+  Queue <String > q  = new  LinkedList <>();
5+  int  level  = 1 ;
6+ 
7+  q .offer (beginWord );
8+ 
9+  while  (!q .isEmpty ()) {
10+  int  size  = q .size ();
11+ 
12+  for  (int  i  = 0 ; i  < size ; i ++) {
13+  char [] letters  = q .poll ().toCharArray ();
14+ 
15+  for  (int  j  = 0 ; j  < letters .length ; j ++) {
16+  char  tmp  = letters [j ];
17+ 
18+  for  (char  c  = 'a' ; c  <= 'z' ; c ++) {
19+  letters [j ] = c ;
20+ 
21+  String  modifiedWord  = new  String (letters );
22+ 
23+  if  (dict .remove (modifiedWord )) {
24+  if  (modifiedWord .equals (endWord )) {
25+  return  ++level ;
26+  }
27+  q .offer (modifiedWord );
28+  dict .remove (modifiedWord );
29+  }
30+  }
31+ 
32+  letters [j ] = tmp ;
33+  }
34+  }
35+ 
36+  ++level ;
37+  }
38+ 
39+  return  0 ;
40+  }
41+ }
                                 You can’t perform that action at this time. 
               
                  
0 commit comments