?LeetCode刷題實(shí)戰(zhàn)433:最小基因變化

示例
示例 1:
start: "AACCGGTT"
end: "AACCGGTA"
bank: ["AACCGGTA"]
返回值: 1
示例 2:
start: "AACCGGTT"
end: "AAACGGTA"
bank: ["AACCGGTA", "AACCGCTA", "AAACGGTA"]
返回值: 2
示例 3:
start: "AAAAACCC"
end: "AACCCCCC"
bank: ["AAAACCCC", "AAACCCCC", "AACCCCCC"]
返回值: 3
解題
class?Solution?{
private:
????unordered_set<string> st;
????bool?find_end(string& str, string& end, queue<string>& que)?{
????????vector<char> next({'A', 'C', 'T', 'G'});
????????for?(int?m = 0; m < str.size(); m++) {
????????????string?new_str = str;
????????????for?(int?n = 0; n < 4; n++) {
????????????????new_str[m] = next[n];
????????????????if?(new_str == end) {
????????????????????return?true;
????????????????}
????????????????if?(st.count(new_str)) {
????????????????????que.push(new_str);
????????????????????st.erase(new_str);
????????????????}
????????????}
????????}
????????return?false;
????}
public:
????int?minMutation(string?start, string?end, vector<string>& bank)?{
????????st = unordered_set<string>(bank.begin(), bank.end());
????????if?(st.count(end) == 0) {
????????????return?-1;
????????}
????????queue<string> que;
????????que.push(start);
????????int?res = 0;
????????while?(!que.empty()) {
????????????res++;
????????????int?size = que.size();
????????????for?(int?i = 0; i < size; i++) {
????????????????string?str = que.front();
????????????????que.pop();
????????????????if?(find_end(str, end, que)) {
????????????????????return?res;
????????????????}
????????????}
????????}
????????return?-1;
????}
};
LeetCode1-420題匯總,希望對你有點(diǎn)幫助!
LeetCode刷題實(shí)戰(zhàn)421:數(shù)組中兩個數(shù)的最大異或值
LeetCode刷題實(shí)戰(zhàn)422:有效的單詞方塊
LeetCode刷題實(shí)戰(zhàn)423:從英文中重建數(shù)字
LeetCode刷題實(shí)戰(zhàn)424:替換后的最長重復(fù)字符
LeetCode刷題實(shí)戰(zhàn)425:單詞方塊
LeetCode刷題實(shí)戰(zhàn)426:將二叉搜索樹轉(zhuǎn)化為排序的雙向鏈表
LeetCode刷題實(shí)戰(zhàn)427:建立四叉樹
LeetCode刷題實(shí)戰(zhàn)428:序列化和反序列化 N 叉樹
LeetCode刷題實(shí)戰(zhàn)429:N 叉樹的層序遍歷
LeetCode刷題實(shí)戰(zhàn)430:扁平化多級雙向鏈表
LeetCode刷題實(shí)戰(zhàn)431:將 N 叉樹編碼為二叉樹
LeetCode刷題實(shí)戰(zhàn)432:全 O(1) 的數(shù)據(jù)結(jié)構(gòu)
