A gene string can be represented by an 8-character long string, with choices from
Suppose we need to investigate a mutation from a gene string
start to a gene string
end where one mutation is defined as one single character changed in the gene string.
"AACCGGTT" --> "AACCGGTA"is one mutation.
There is also a gene bank
bank that records all the valid gene mutations. A gene must be in
bank to make it a valid gene string.
Given the two gene strings
end and the gene bank
bank, return the minimum number of mutations needed to mutate from
end. If there is no such a mutation, return
Note that the starting point is assumed to be valid, so it might not be included in the bank.
Input: start = "AACCGGTT", end = "AACCGGTA", bank = ["AACCGGTA"] Output: 1
Input: start = "AACCGGTT", end = "AAACGGTA", bank = ["AACCGGTA","AACCGCTA","AAACGGTA"] Output: 2
Input: start = "AAAAACCC", end = "AACCCCCC", bank = ["AAAACCCC","AAACCCCC","AACCCCCC"] Output: 3
start.length == 8
end.length == 8
0 <= bank.length <= 10
bank[i].length == 8
bank[i]consist of only the characters
['A', 'C', 'G', 'T'].