本文共 922 字,大约阅读时间需要 3 分钟。
word ladder换壳题。BFS解决。
class Solution: def minMutation(self, start: str, end: str, bank: List[str]) -> int: wordset = set(bank) #print(wordset) wordset.add(start) meet = set() if end not in wordset:return -1 res = 0 que = collections.deque() que.append(start) letters = 'ACTG' while que: size = len(que) for i in range(size): curword = que.popleft() meet.add(curword) for j in range(8): for c in letters: curnewword = curword[:j] + c + curword[j+1:] if curnewword not in wordset: continue if curnewword not in meet: if curnewword == end:return res+1 else:que.append(curnewword) res += 1 return -1
转载地址:http://wsjii.baihongyu.com/