Advertisement
Guest User

Untitled

a guest
Dec 19th, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.06 KB | None | 0 0
  1. lass Solution:
  2.     # @param start, a string
  3.     # @param end, a string
  4.     # @param dict, a set of string
  5.     # @return an integer
  6.     def ladderLength(self, start, end, dict):
  7.         g = {}
  8.         dict.add(start)
  9.         dict.add(end)
  10.         dict = [x for x in dict]
  11.         for d in dict:
  12.             g[d] = {}
  13.         for a in range(len(dict)):
  14.             for b in range(len(dict)):
  15.                 x, y = dict[a], dict[b]
  16.                 dist = sum([1 if x[i] != y[i] else 0 for i in range(len(x))])
  17.                 if dist == 1:
  18.                     g[x][y] = 1
  19.                     g[y][x] = 1
  20.  
  21.         q = [(start, 1)]
  22.         v = {start: 1}
  23.         i = 0
  24.         while i < len(q):
  25.             current, dist = q[i]
  26.             if current == end:
  27.                 return dist
  28.             for next in g[current]:
  29.                 if next not in v:
  30.                     v[next] = 1
  31.                     q.append((next, dist+1))
  32.             i += 1
  33.         return -1
  34.  
  35.  
  36. s = Solution()
  37. d = s.ladderLength('hot', 'dot', set(["hot","dot","dog"]))
  38. print(d)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement