亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

126. Word Ladder II

2019-11-10 19:30:54
字體:
來源:轉載
供稿:網友

Given two Words (beginWord and endWord), and a dictionary's word list, find all shortest transformation sequence(s) frombeginWord to endWord, such that:

Only one letter can be changed at a timeEach transformed word must exist in the word list. Note that beginWord isnot a transformed word.

For example,

Given:beginWord = "hit"endWord = "cog"wordList = ["hot","dot","dog","lot","log","cog"]

Return

  [    ["hit","hot","dot","dog","cog"],    ["hit","hot","lot","log","cog"]  ]

Note:

Return an empty list if there is no such transformation sequence.All words have the same length.All words contain only lowercase alphabetic characters.You may assume no duplicates in the word list.You may assume beginWord and endWord are non-empty and are not the same.

UPDATE (2017/1/20):The wordList parameter had been changed to a list of strings (instead of a set of strings). Please reload the code definition to get the latest changes.

Subscribe to see which companies asked this question.

這道題是127.World Ladder的升級版,要找出所有使開始單詞轉換成結束單詞的最短的轉換路徑。在上一道題的基礎上修改,比上一題增加的是,要記錄下變換的路徑,這里用unordered_map來記下每個單詞對應的下一個單詞列表。因為是從兩端開始延伸的,但變換順序是單向的,所以從尾端延伸的要以變換的單詞為鍵值,將當前單詞加入對應的下一個單詞列表。最后用深度優先搜索就能得到全部答案。

還有一點和127題的實現不一樣的是,當前單詞在wordSet中找到一個可變換單詞就收集下來并立刻從wordSet中刪除,但這里不能立刻刪除,等遍歷完當前集合全部單詞才根據set3刪除wordSet中的單詞(對127題立刻和不立刻刪除沒區別),這時考慮到這種情況:當前集合有marks和paris,wordSet中有parks,如果marks確定了能變換成parks,然后把parks從wordSet中刪除,下面paris就沒有下一個單詞了(斷鏈了。。),這樣答案就不全了,所以wordSet等遍歷完當前集合全部單詞才更新。

代碼:

class Solution{public:	using strset = unordered_set<string>;	using strmap = unordered_map<string, vector<string> >;	vector<vector<string> > findLadders(string beginWord, string endWord, vector<string>& wordList) 	{		strset beginSet, endSet, wordSet(wordList.begin(), wordList.end());		vector<vector<string> > res;		if(wordSet.find(endWord) == wordSet.end()) return res;		beginSet.insert(beginWord);		endSet.insert(endWord);		wordSet.erase(beginWord);		wordSet.erase(endWord);		bool isfinish = false;		while(!beginSet.empty() && !endSet.empty())		{			if(isfinish) break;			strset *set1, *set2, set3;			int choose = 1;			if(beginSet.size() <= endSet.size()) { set1 = &beginSet; set2 = &endSet; }			else { choose = 2; set2 = &beginSet; set1 = &endSet; }			for(auto iter = set1->begin(); iter != set1->end(); ++iter)			{				string cur = *iter, dup = cur;				for(int i = 0; i < cur.size(); ++i)				{					char tmp = cur[i];					for(int j = 0; j < 26; ++j)					{						cur[i] = 'a' + j; 						if(set2->find(cur) != set2->end()) 						{							isfinish = true;							if(choose == 1) strMap[dup].push_back(cur);							else strMap[cur].push_back(dup);							continue;						}						if(wordSet.find(cur) != wordSet.end())						{							set3.insert(cur);							if(choose == 1) strMap[dup].push_back(cur);							else strMap[cur].push_back(dup);						}					}					cur[i] = tmp;				}			}			for(auto it = set3.begin(); it != set3.end(); ++it) wordSet.erase(*it);			swap(*set1, set3);		}		vector<string> tmp(1, beginWord);		dfs(beginWord, endWord, tmp, res);		return res;	}PRivate:	strmap strMap;	void dfs(const string& cur, const string& endWord, vector<string>& tmp, vector<vector<string> >& res)	{		if(cur == endWord)		{			res.push_back(tmp);			return;		}		for(auto iter = strMap[cur].begin(); iter != strMap[cur].end(); ++iter)		{			tmp.push_back(*iter);			dfs(*iter, endWord, tmp, res);			tmp.pop_back();		}	}};


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av一区在线| 亚洲a中文字幕| 亚洲美女在线视频| 精品国产自在精品国产浪潮| 欧美成人免费va影院高清| 亚洲综合社区网| 国产精品丝袜久久久久久高清| 亚洲国产精品yw在线观看| 97免费视频在线播放| 精品国产一区二区三区久久久| 国产成人精品久久二区二区91| 国产欧美日韩专区发布| 国产精品久久av| 日韩精品中文字幕有码专区| 色噜噜狠狠色综合网图区| 91黑丝高跟在线| 国产成人综合亚洲| 欧美中文字幕在线播放| 国产精品日韩一区| 欧美高清理论片| 欧美亚洲在线视频| 最新中文字幕亚洲| 亚洲国产精品福利| 亚洲成人在线网| 亚洲国产成人在线视频| 国产精品久久99久久| 欧美电影免费观看网站| 在线一区二区日韩| 亚洲人成电影网站| 欧美裸体xxxx极品少妇软件| 日韩欧美在线观看| 国产精品久久999| 日韩高清欧美高清| 国模私拍视频一区| 精品国产依人香蕉在线精品| 国产成人精品一区二区| 亚洲成人免费在线视频| 欧美成年人视频网站| 欧洲一区二区视频| 亚洲偷熟乱区亚洲香蕉av| 色综合导航网站| 97香蕉久久夜色精品国产| 美日韩精品免费观看视频| 91精品国产色综合久久不卡98| 国产成人精品在线播放| 亚洲第一福利网站| 色哟哟网站入口亚洲精品| 亚洲视频在线观看| 久久91超碰青草是什么| 欧美日韩黄色大片| 欧美日韩国产精品专区| 97婷婷大伊香蕉精品视频| 国产91精品黑色丝袜高跟鞋| 国产在线精品成人一区二区三区| 成人av色在线观看| 国模叶桐国产精品一区| 91精品美女在线| 久久久久久这里只有精品| 久久在线视频在线| 亚洲天堂网在线观看| 一区二区欧美亚洲| 国产91精品久久久| 国产日产欧美a一级在线| 国产高清在线不卡| 国内精久久久久久久久久人| 日韩欧美在线网址| 日韩亚洲在线观看| 久久精品中文字幕一区| 亚洲精品电影网| 欧美日韩中文字幕在线视频| 亚洲精品视频久久| 一本色道久久综合狠狠躁篇怎么玩| 国产精品美女久久| 亚洲男人的天堂在线播放| 日韩欧美亚洲国产一区| 日韩欧美国产中文字幕| 国产一区二区三区三区在线观看| 国产精品久久视频| 久久久女女女女999久久| 九色精品免费永久在线| 亚洲综合大片69999| 精品人伦一区二区三区蜜桃免费| 8x海外华人永久免费日韩内陆视频| 精品夜色国产国偷在线| 国产精品九九久久久久久久| 日韩美女在线观看| 中文字幕精品视频| 亚洲免费一在线| 国产精品久久久久久久美男| 日韩三级影视基地| 久久久久久亚洲精品中文字幕| 色天天综合狠狠色| 91香蕉嫩草神马影院在线观看| 91在线观看免费网站| 97精品一区二区三区| 国产免费一区二区三区香蕉精| 亚洲天堂免费在线| 日韩av片永久免费网站| 国产精品久久久久久久av电影| 91成品人片a无限观看| 欧美国产日韩一区二区在线观看| 日韩在线视频网站| 国产精品情侣自拍| 一本大道香蕉久在线播放29| 亚洲欧美激情一区| xxx成人少妇69| 午夜精品一区二区三区在线播放| 国产色综合天天综合网| 亚洲深夜福利视频| 成人乱色短篇合集| 国产xxx69麻豆国语对白| 欧美日产国产成人免费图片| 中文字幕亚洲无线码在线一区| 亚洲人成网站免费播放| 国产欧美日韩中文字幕在线| 欧美精品videofree1080p| 激情亚洲一区二区三区四区| 国产成人精品电影| 亚洲精品在线不卡| 亚洲嫩模很污视频| 国产精品综合不卡av| 亚州国产精品久久久| 国产精品情侣自拍| 亚洲情综合五月天| 国产一区二区三区视频| 亚洲天堂日韩电影| 久久精品成人动漫| 美女视频久久黄| 国产日韩换脸av一区在线观看| 久久亚洲精品一区| 亚洲精品国精品久久99热| 日韩欧美一区二区在线| 在线观看久久久久久| 一本色道久久88综合亚洲精品ⅰ| 亚洲欧洲国产一区| 一本色道久久综合狠狠躁篇的优点| 欧美成人精品一区| 91精品国产综合久久香蕉最新版| 668精品在线视频| 国产一区二区三区日韩欧美| 日韩在线观看免费全| 少妇av一区二区三区| 97在线观看免费| 亚洲第一色中文字幕| 中文字幕精品在线视频| 91久久精品美女高潮| 欧美超级乱淫片喷水| 亚洲欧洲偷拍精品| 7777精品视频| 亚洲日本中文字幕| 国产精品久久久久免费a∨大胸| 欧美激情在线观看| 中日韩美女免费视频网址在线观看| 国产97色在线|日韩| 日韩av一区在线观看| 国产精品久久久久久久久久小说| 国产精品日韩在线观看| 国内免费久久久久久久久久久| 国产精品视频男人的天堂| 欧美一性一乱一交一视频| 久久99久久久久久久噜噜| 色婷婷av一区二区三区久久| 亚洲性视频网址| 亚洲第一av网|