public int minMutation(String start, String end, String[] bank) {
if (start.length() != end.length()) {
Set<String> sequences = new HashSet<>();
char[] code = {'A', 'C', 'G', 'T'};
for (String seq : bank) {
if (!sequences.contains(end)) {
Set<String> visited = new HashSet<>();
Set<String> beginSet = new HashSet<>();
Set<String> endSet = new HashSet<>();
while (!beginSet.isEmpty() && !endSet.isEmpty()) {
System.out.println("beginSet size: " + beginSet.size() + " endSet size: " + endSet.size());
if (beginSet.size() >= endSet.size()) {
for (String gene : beginSet) {
char[] letters = gene.toCharArray();
for (int i = 0; i < letters.length; i++) {
String nextGene = new String(letters);
if (endSet.contains(nextGene)) {
if (sequences.contains(nextGene) && !visited.contains(nextGene)) {