### minMutation 
from collections import deque
from typing import *
def f_gold(start: str, end: str, bank: List[str]) -> int:
    s = set(bank)
    q = deque([(start, 0)])
    mp = {'A': 'TCG', 'T': 'ACG', 'C': 'ATG', 'G': 'ATC'}
    while q:
        t, step = q.popleft()
        if t == end:
            return step
        for i, v in enumerate(t):
            for j in mp[v]:
                next = t[:i] + j + t[i + 1 :]
                if next in s:
                    q.append((next, step + 1))
                    s.remove(next)
    return -1