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

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

126. Word Ladder II

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

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
日韩欧美亚洲综合| 日本高清不卡的在线| 4438全国成人免费| 欧美高清视频在线播放| 日韩欧美a级成人黄色| 亚洲精品综合精品自拍| 色综合视频一区中文字幕| 欧洲午夜精品久久久| 国产91|九色| 欧美成人高清视频| 亚洲免费精彩视频| 国产精品18久久久久久首页狼| 国产精选久久久久久| 国产成人a亚洲精品| 在线成人激情视频| 九九精品在线视频| 亚洲精品成a人在线观看| 色阁综合伊人av| 欧美性猛交xxxx乱大交蜜桃| 欧美在线不卡区| 亚洲日本aⅴ片在线观看香蕉| 97不卡在线视频| 日韩av免费看| 亚洲欧洲激情在线| 日本精品视频在线观看| 97久久精品人人澡人人爽缅北| 国产91在线高潮白浆在线观看| 色综合老司机第九色激情| 亚州精品天堂中文字幕| 最近2019免费中文字幕视频三| 中文字幕日韩在线播放| 亚洲天天在线日亚洲洲精| 欧美日韩aaaa| 国产精品96久久久久久又黄又硬| 久久影视电视剧免费网站清宫辞电视| 久久精品国产亚洲精品2020| 欧美日韩高清在线观看| 国产成人综合av| 在线观看不卡av| 九九热这里只有精品6| 91中文字幕在线观看| 伊人久久久久久久久久| 亚洲新声在线观看| 欧美日韩亚洲成人| 国产精品电影在线观看| www亚洲精品| 久久九九免费视频| 国产精品亚洲自拍| 国产精品亚洲第一区| 国产精品欧美日韩一区二区| 日韩精品中文在线观看| 欧美激情一级欧美精品| 国产精品扒开腿做爽爽爽男男| 成人中文字幕+乱码+中文字幕| 91av成人在线| 久久精品99久久香蕉国产色戒| 国产一区二区三区视频在线观看| 日韩麻豆第一页| 精品久久香蕉国产线看观看亚洲| 久久躁日日躁aaaaxxxx| 亚洲欧洲午夜一线一品| 国产精品久久久久国产a级| 欧美日韩精品在线观看| 精品国产一区二区三区久久| 高清欧美电影在线| 亚洲国产欧美精品| 久久久亚洲精选| 欧美日韩亚洲91| 国产一区香蕉久久| 狠狠躁夜夜躁人人爽天天天天97| 亚洲午夜久久久影院| 亚洲视频在线看| 日韩av中文字幕在线免费观看| 性欧美视频videos6一9| 综合136福利视频在线| 国产视频久久久久久久| 久久久久久久久久久久av| 91精品国产高清自在线| 国产在线999| 2019中文字幕在线免费观看| 亚洲人成伊人成综合网久久久| 国产精品九九久久久久久久| 欧美重口另类videos人妖| 国产成人鲁鲁免费视频a| 亚洲天堂久久av| 久久久久久久久久久成人| 日韩成人在线免费观看| 日韩中文字幕在线观看| 欧美国产高跟鞋裸体秀xxxhd| 九九久久国产精品| 91九色综合久久| 国产欧美日韩精品在线观看| 日韩精品中文字幕在线播放| 日本久久久久久| 精品久久久免费| 久久久www成人免费精品张筱雨| 精品偷拍各种wc美女嘘嘘| 91国在线精品国内播放| 国内精品久久影院| 色噜噜狠狠色综合网图区| 久久青草福利网站| 国产精品a久久久久久| 亚洲第一中文字幕在线观看| 高跟丝袜欧美一区| 日韩中文字幕网址| 亚洲精品aⅴ中文字幕乱码| 亚洲爱爱爱爱爱| 日韩在线激情视频| 在线精品高清中文字幕| 久久免费视频这里只有精品| 91视频-88av| 欧美在线视频播放| 亚洲人成电影网站色…| 欧美日韩中国免费专区在线看| 国产精品久久一区| 亚洲欧洲在线播放| 国产综合色香蕉精品| 亚洲国产精品999| 不卡毛片在线看| 日韩成人在线播放| 国产精品久久久久999| 韩国一区二区电影| 精品毛片网大全| 日韩av片免费在线观看| 日韩成人黄色av| 亚洲最大的成人网| 亚洲天堂免费观看| 欧美高清videos高潮hd| 日韩av电影免费观看高清| 丝袜亚洲另类欧美重口| 国产精品手机播放| 亚洲综合国产精品| 成人久久一区二区三区| 亚洲亚裔videos黑人hd| 国产精品极品在线| 欧美理论电影在线播放| 中文.日本.精品| 成人免费淫片aa视频免费| 欧美夫妻性视频| 最新中文字幕亚洲| 亚洲精品色婷婷福利天堂| 欧美日韩久久久久| …久久精品99久久香蕉国产| 18久久久久久| 久久久综合av| 亚洲一区中文字幕| 亚洲乱码一区av黑人高潮| 久久免费观看视频| 精品国产鲁一鲁一区二区张丽| 日韩高清免费观看| 91精品成人久久| 欧美日韩亚洲国产一区| 亚洲色图综合久久| 欧美大尺度在线观看| 91丝袜美腿美女视频网站| 欧美性猛交xxxx乱大交3| 久久夜精品香蕉| 高清欧美一区二区三区| 欧美日韩电影在线观看| 国产丝袜一区二区三区| 精品久久久久久久大神国产| 精品亚洲va在线va天堂资源站| 91久久精品视频| 国产日本欧美在线观看|