Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var map : [String:[Int]]
- init(_ words: [String]) {
- map = [String:[Int]]() // word , index array
- for (index, w) in words.enumerated() {
- map[w, default:[Int]()].append(index)
- }
- }
- func shortest(_ word1: String, _ word2: String) -> Int {
- let l1 = map[word1]!
- let l2 = map[word2]!
- var res = Int.max
- var p1 = 0
- var p2 = 0
- while p1 < l1.count && p2 < l2.count {
- res = min(res, abs(l1[p1] - l2[p2]))
- if l1[p1] < l2[p2] {
- p1 += 1
- }else{
- p2 += 1
- }
- }
- return res
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement