Untitled
plain_text
23 days ago
1.1 kB
1
Indexable
Never
class Solution { public: int minMutation(string start, string end, vector<string>& bank) { unordered_set<string>st{bank.begin(),bank.end()}; //.find() returns iterator index whereas .count() returns bool for unordered_set if(!st.count(end)) return -1; int count=0; queue<string> q; q.push(start); while(!q.empty()){ int s=q.size(); while(s--){ string t=q.front(); q.pop(); if(t==end) return count; st.erase(t); //this is same as marking it visited for(int i=0;i<8;i++){ string f=t; f[i]='A'; if(st.count(f)) q.push(f); f[i]='C'; if(st.count(f)) q.push(f); f[i]='G'; if(st.count(f)) q.push(f); f[i]='T'; if(st.count(f)) q.push(f); } } count++; } return -1; } };