Minimum Genetic Mutation LeetCode solution in C++
1class Solution {2public:3int minMutation(string start, string end, vector<string> &bank) {4unordered_set<string> st(bank.begin(), bank.end());5if (st.find(end) == st.end()) return -1;67queue<string> q;8q.push(start);910unordered_set<string> vis;11vis.insert(start);1213int res = 0;14while (not q.empty()) {15int sz = q.size();1617while (sz--) {18string currString = q.front();19q.pop();20if (currString == end) return res;2122for (int i = 0; i < currString.size(); i++) {23string temp = currString;24for (auto g : string("ATGC")) {25temp[i] = g;26if (st.find(temp) != st.end() and (vis.find(temp) == vis.end())) {27q.push(temp);28vis.insert(temp);29}30}31}32}33res++;34}3536return -1;37}38};