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