File tree Expand file tree Collapse file tree 1 file changed +15
-23
lines changed
lcci/17.22.Word Transformer Expand file tree Collapse file tree 1 file changed +15
-23
lines changed Original file line number Diff line number Diff line change 1
1
class Solution {
2
- private var ans = [ String ] ( )
3
- private var wordList : [ String ]
4
- private var endWord : String
5
- private var vis : [ Bool ]
6
-
7
- init ( wordList : [ String ] , endWord: String ) {
2
+ private var ans : [ String ] = [ ]
3
+ private var wordList : [ String ] = [ ]
4
+ private var endWord : String = " "
5
+ private var vis : [ Bool ] = [ ]
6
+
7
+ func findLadders ( _ beginWord : String , _ endWord: String , _ wordList : [ String ] ) -> [ String ] {
8
8
self . wordList = wordList
9
9
self . endWord = endWord
10
- self . vis = Array ( repeating: false , count: wordList. count)
11
- }
12
-
13
- func findLadders( _ beginWord: String ) -> [ String ] {
14
10
ans. append ( beginWord)
15
- if dfs ( beginWord) {
16
- return ans
17
- } else {
18
- return [ ]
19
- }
11
+ vis = Array ( repeating: false , count: wordList. count)
12
+ return dfs ( beginWord) ? ans : [ ]
20
13
}
21
-
14
+
22
15
private func dfs( _ s: String ) -> Bool {
23
16
if s == endWord {
24
17
return true
@@ -34,24 +27,23 @@ class Solution {
34
27
return true
35
28
}
36
29
ans. removeLast ( )
37
- vis [ i] = false
38
30
}
39
31
return false
40
32
}
41
-
33
+
42
34
private func check( _ s: String , _ t: String ) -> Bool {
43
35
if s. count != t. count {
44
36
return false
45
37
}
46
- var count = 0
38
+ var cnt = 0
47
39
for (sc, tc) in zip ( s, t) {
48
40
if sc != tc {
49
- count += 1
50
- if count > 1 {
41
+ cnt += 1
42
+ if cnt > 1 {
51
43
return false
52
44
}
53
45
}
54
46
}
55
- return count == 1
47
+ return cnt == 1
56
48
}
57
- }
49
+ }
You can’t perform that action at this time.
0 commit comments