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

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

126. Word Ladder II

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

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
欧美视频中文在线看| 日韩暖暖在线视频| 久久免费视频在线观看| 2019中文在线观看| 国产偷亚洲偷欧美偷精品| 北条麻妃99精品青青久久| 亚洲国产精品久久久久秋霞蜜臀| 亚洲人成亚洲人成在线观看| 亚洲欧美在线磁力| 欧洲美女免费图片一区| 91亚洲人电影| 欧美日韩国产在线看| 成人黄色网免费| 久久免费在线观看| 自拍偷拍亚洲一区| 亚洲第一区中文99精品| 亚洲天堂影视av| 韩剧1988免费观看全集| 91国语精品自产拍在线观看性色| 亚洲第一区第一页| 日韩成人高清在线| 日韩av免费在线| 中文字幕欧美专区| 中文字幕欧美视频在线| 久久国产精品影视| 国产精品香蕉在线观看| 亚洲精品免费一区二区三区| 国产精品成人va在线观看| 欧美极品少妇xxxxⅹ免费视频| 亚洲一区二区精品| 久久av在线播放| 91精品在线观| 日韩网站在线观看| 91爱爱小视频k| 91午夜在线播放| 久久精品国产亚洲| 色妞在线综合亚洲欧美| 国模吧一区二区三区| 国产91对白在线播放| 欧美一级视频免费在线观看| 狠狠躁夜夜躁人人爽超碰91| 亚洲无线码在线一区观看| 欧美性理论片在线观看片免费| 亚洲成人精品久久久| 秋霞午夜一区二区| 久久亚洲精品毛片| 欧美日韩一区二区三区在线免费观看| 日韩av在线网页| 俺也去精品视频在线观看| www.xxxx精品| 久久精品国产视频| 午夜欧美不卡精品aaaaa| 久久免费精品日本久久中文字幕| 久久精品91久久久久久再现| 69久久夜色精品国产69| 欧美日韩免费一区| 精品国产欧美一区二区三区成人| 国产精品欧美久久久| 亚洲天堂av在线免费| 亚洲国产精品va| 亚洲天堂男人天堂女人天堂| 日韩三级成人av网| 亚洲免费视频一区二区| 亚洲欧美日韩精品久久亚洲区| 国产成人激情视频| 91精品久久久久久久久不口人| 精品自在线视频| 色999日韩欧美国产| 人人澡人人澡人人看欧美| 日韩福利在线播放| 亚洲国产精品人久久电影| 久久精品99国产精品酒店日本| 亚洲精品国精品久久99热| 91成人天堂久久成人| 国产精品久久久久久久久久东京| 综合国产在线视频| 欧美性极品xxxx娇小| 亚洲第一色中文字幕| 国产在线视频不卡| 国产区亚洲区欧美区| 午夜精品一区二区三区在线视频| 不卡av在线网站| 国产精品美乳一区二区免费| 国内成人精品视频| 欧美亚洲在线观看| 欧美性xxxx极品hd欧美风情| 国产精品美女免费看| 日本a级片电影一区二区| 午夜精品久久久久久99热软件| 成人av在线网址| 欧美一级片久久久久久久| 在线中文字幕日韩| 91免费精品视频| 欧美中文字幕在线| 欧美大成色www永久网站婷| 欧美成人免费在线观看| 自拍偷拍亚洲在线| 日韩美女写真福利在线观看| 亚洲深夜福利在线| 亚洲性生活视频在线观看| 亚州成人av在线| 成人免费淫片aa视频免费| 久久久久99精品久久久久| 久久视频在线看| 日韩精品免费在线视频观看| 欧美精品在线极品| 久久亚洲综合国产精品99麻豆精品福利| 日韩在线播放视频| 91精品中文在线| 亚洲成人网久久久| 中文字幕欧美精品在线| 欧美午夜激情在线| 国内精品美女av在线播放| 久久久97精品| 国产精品稀缺呦系列在线| 日本成人在线视频网址| 久久精品色欧美aⅴ一区二区| 成人国产精品一区| 日韩久久午夜影院| 伊人亚洲福利一区二区三区| 伊人伊成久久人综合网站| 久久伊人精品视频| 日本久久久久久久久久久| 久久精品2019中文字幕| 国产999精品视频| 中文字幕国产亚洲2019| 亚洲欧美制服第一页| 91精品视频在线播放| 日韩成人av一区| 国产精国产精品| 亚洲一区二区免费| 国产一区二区三区在线免费观看| 91亚洲va在线va天堂va国| 久热在线中文字幕色999舞| 午夜精品福利电影| 亚洲精品视频在线播放| 亚洲精品一区二区网址| 久久免费视频观看| 亚洲人成电影网站色www| 亚洲性线免费观看视频成熟| 日韩在线观看免费av| 欧美一级黄色网| 日韩黄色高清视频| 欧美日韩999| 国产成人亚洲综合| 欧美成人激情视频免费观看| 伊人久久久久久久久久| 日韩美女写真福利在线观看| 日韩中文视频免费在线观看| 97av在线视频免费播放| 久久的精品视频| 欧美另类暴力丝袜| 国产亚洲欧美日韩一区二区| 亚洲国产成人在线播放| 秋霞成人午夜鲁丝一区二区三区| 欧美成人第一页| 精品久久久久久久久国产字幕| 欧美午夜片在线免费观看| 奇米四色中文综合久久| 色爱精品视频一区| 欧美一区第一页| 97在线视频国产| 欧美中文在线观看国产| 中文.日本.精品|