Minimum Genetic Mutation LeetCode solution in Python
1class Solution:2def minMutation(self, start: str, end: str, bank: List[str]) -> int:3q = deque()4q.append(start)5n = len(bank)6last = 07used = [False] * n8for i, x in enumerate(bank):9if start == x:10used[i] = True11if end == x:12last = i13dist = 014while q:15dist += 116for _ in range(len(q)):17w = q.popleft()18for i, x in enumerate(bank):19if used[i]:20continue21bad = 022for j in range(8):23if w[j] != x[j]:24bad += 125if bad == 2:26break27if bad == 1:28if last == i:29return dist30used[i] = True31q.append(x)32return -1