在一个牛群中,每头牛都有一个编号,编号由小写字母组成,长度相同。牛群中的每头牛都有一个目标编号,当牛群中的一头牛移动到一个新的位置时,它的编号会发生改变,每次移动只能改变一个字母。现在给定一个表示牛群初始状态的编号 beginWord,一个表示牛群最终目标状态的编号 endWord,以及一个包含所有可能的编号序列的字典 wordList。请找出从 beginWord 到 endWord 的最短移动序列中的编号数目。如果不存在这样的移动序列,返回 0。
区块链毕设网qklbishe.com为您提供问题的解答
在一个牛群中,每头牛都有一个编号,编号由小写字母组成,长度相同。牛群中的每头牛都有一个目标编号,当牛群中的一头牛移动到一个新的位置时,它的编号会发生改变,每次移动只能改变一个字母。现在给定一个表示牛群初始状态的编号 beginWord,一个表示牛群最终目标状态的编号 endWord,以及一个包含所有可能的编号序列的字典 wordList。请找出从 beginWord 到 endWord 的最短移动序列中的编号数目。如果不存在这样的移动序列,返回 0。
哈希+广度优先搜索
#include <string> #include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param beginWord string字符串 * @param endWord string字符串 * @param wordList string字符串vector * @return int整型 */ // 检测两个字符串有多少个不同的字符 bool check(string str_1, string str_2) { if(str_1.size()!=str_2.size()) return false; int len = str_1.size(); int res = 0; for(int i=0; i<len; ++i) { if(str_1[i]!=str_2[i]) ++res; } return res==1; } int ladderLength(string beginWord, string endWord, vector<string>& wordList) { // write code here // 哈希 + 广度优先搜索 unordered_set<string> u_s(wordList.begin(),wordList.end()); if(u_s.count(endWord)==0) return 0; // 将u_s中与beginWord一样的字符串删除 if(u_s.count(beginWord)) u_s.erase(beginWord); queue<string> q; q.emplace(beginWord); while(!q.empty()) { int len = q.size(); ++ans; for(int i=0; i<len; ++i) { string str= q.front(); q.pop(); if(str==endWord) return ans; // 从字典中找到与q.front()一字之差的字符串 for(auto it=u_s.begin(); it!=u_s.end(); ) { if(check(str, *it)) { // 这里修改一下 q.emplace(*it); it = u_s.erase(it); // q.emplace(*it); // // u_s中删除这个字符串,避免重复利用 // u_s.erase(it); // // 这里需要将it重新定义为u_s.begin(),否则产生段错误,it都被删了哪还有it // it = u_s.begin(); // continue; } else ++it; } } } return 0; } private: int ans = 0; };
14:24
以上就是关于问题在一个牛群中,每头牛都有一个编号,编号由小写字母组成,长度相同。牛群中的每头牛都有一个目标编号,当牛群中的一头牛移动到一个新的位置时,它的编号会发生改变,每次移动只能改变一个字母。现在给定一个表示牛群初始状态的编号 beginWord,一个表示牛群最终目标状态的编号 endWord,以及一个包含所有可能的编号序列的字典 wordList。请找出从 beginWord 到 endWord 的最短移动序列中的编号数目。如果不存在这样的移动序列,返回 0。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训
从业7年-专注一级市场
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个牛群中,每头牛都有一个编号,编号由小写字母组成,长度相同。牛群中的每头牛都有一个目标编号,当牛群中的一头牛移动到一个新的位置时,它的编号会发生改变,每次移动只能改变一个字母。现在给定一个表示牛群初始状态的编号 beginWord,一个表示牛群最终目标状态的编号 endWord,以及一个包含所有可能的编号序列的字典 wordList。请找出从 beginWord 到 endWord 的最短移动序列中的编号数目。如果不存在这样的移动序列,返回 0。
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个牛群中,每头牛都有一个编号,编号由小写字母组成,长度相同。牛群中的每头牛都有一个目标编号,当牛群中的一头牛移动到一个新的位置时,它的编号会发生改变,每次移动只能改变一个字母。现在给定一个表示牛群初始状态的编号 beginWord,一个表示牛群最终目标状态的编号 endWord,以及一个包含所有可能的编号序列的字典 wordList。请找出从 beginWord 到 endWord 的最短移动序列中的编号数目。如果不存在这样的移动序列,返回 0。
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个牛群中,每头牛都有一个编号,编号由小写字母组成,长度相同。牛群中的每头牛都有一个目标编号,当牛群中的一头牛移动到一个新的位置时,它的编号会发生改变,每次移动只能改变一个字母。现在给定一个表示牛群初始状态的编号 beginWord,一个表示牛群最终目标状态的编号 endWord,以及一个包含所有可能的编号序列的字典 wordList。请找出从 beginWord 到 endWord 的最短移动序列中的编号数目。如果不存在这样的移动序列,返回 0。
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个牛群中,每头牛都有一个编号,编号由小写字母组成,长度相同。牛群中的每头牛都有一个目标编号,当牛群中的一头牛移动到一个新的位置时,它的编号会发生改变,每次移动只能改变一个字母。现在给定一个表示牛群初始状态的编号 beginWord,一个表示牛群最终目标状态的编号 endWord,以及一个包含所有可能的编号序列的字典 wordList。请找出从 beginWord 到 endWord 的最短移动序列中的编号数目。如果不存在这样的移动序列,返回 0。