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

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

126. Word Ladder II

2019-11-10 18:35:23
字體:
來源:轉載
供稿:網友

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
66m—66摸成人免费视频| 国产一区二区色| 日韩在线中文字幕| 亚洲女同性videos| 国产a∨精品一区二区三区不卡| 成人久久久久久| 51午夜精品视频| 国内自拍欧美激情| 亚洲a∨日韩av高清在线观看| 26uuu亚洲伊人春色| 亚洲黄色av女优在线观看| 亚洲欧美另类人妖| 亚洲网站视频福利| 日韩中文字幕免费看| 日韩在线免费av| 日韩在线视频二区| 91产国在线观看动作片喷水| 久久免费视频这里只有精品| 久久韩剧网电视剧| 日韩福利视频在线观看| 成人欧美一区二区三区黑人孕妇| 亚洲va欧美va国产综合久久| 久久久在线免费观看| 日日噜噜噜夜夜爽亚洲精品| 国产一区二区三区在线播放免费观看| 97精品免费视频| 国产精品自产拍在线观| 欧美国产乱视频| 亚洲天天在线日亚洲洲精| 日韩av影视在线| 在线观看日韩专区| 992tv成人免费视频| 国产精品美女主播在线观看纯欲| 日韩中文字幕精品视频| 国产一区在线播放| 欧美区二区三区| 国产99久久精品一区二区永久免费| 情事1991在线| 青青久久av北条麻妃黑人| 国产精品丝袜白浆摸在线| 中文在线资源观看视频网站免费不卡| 欧美性xxxxxx| 亚洲精品福利在线观看| xxxxx91麻豆| 国产精品日韩在线观看| 成人黄色网免费| 亚洲综合第一页| 国产精品第10页| 国内精品久久久久久中文字幕| 精品久久久91| 亚洲国产日韩欧美综合久久| 欧美激情2020午夜免费观看| 亚洲影院高清在线| 欧美成人精品在线播放| 亚洲石原莉奈一区二区在线观看| 成人做爽爽免费视频| 91在线观看免费观看| 最近2019中文字幕在线高清| xxxx欧美18另类的高清| 国产精品国产自产拍高清av水多| 亚洲毛茸茸少妇高潮呻吟| 日韩中文字幕视频在线观看| 在线观看91久久久久久| 欧美巨乳在线观看| 欧美寡妇偷汉性猛交| 亚洲 日韩 国产第一| 亚洲综合一区二区不卡| 国a精品视频大全| 精品无人区乱码1区2区3区在线| 日韩美女写真福利在线观看| 97视频免费看| 亚洲一区二区三区久久| 欧美精品videossex性护士| 欧美一级视频在线观看| 精品国产91乱高清在线观看| 欧美日韩国产va另类| 久久精品欧美视频| 一区二区三区www| 亚洲日韩欧美视频| 国产一区二区三区精品久久久| 久久成人免费视频| 亚洲国产天堂网精品网站| 欧美噜噜久久久xxx| 亚洲少妇激情视频| 国产精品极品美女粉嫩高清在线| 成人两性免费视频| 欧美猛少妇色xxxxx| 日韩欧美亚洲国产一区| 久久精品99国产精品酒店日本| 久久精品在线视频| 国产成人中文字幕| 久久男人av资源网站| 久久久久国产视频| 亚洲精品在线视频| 国内免费久久久久久久久久久| 久久99国产综合精品女同| 57pao国产成人免费| 91精品国产高清自在线| 国产精品露脸av在线| 亚洲va男人天堂| 亚洲国产中文字幕久久网| 久久视频精品在线| 欧美激情图片区| 日韩在线一区二区三区免费视频| 久久精品视频网站| 亚洲国产精品一区二区三区| 亚洲一二三在线| 国产精品久久久久久久久久小说| 国产大片精品免费永久看nba| 日本91av在线播放| 米奇精品一区二区三区在线观看| 日韩av影视综合网| 成人乱人伦精品视频在线观看| 91麻豆桃色免费看| 青青久久av北条麻妃黑人| 亚洲区bt下载| 日韩精品中文字幕视频在线| 在线不卡国产精品| 一色桃子一区二区| 中文亚洲视频在线| 国精产品一区一区三区有限在线| 91亚洲精品一区二区| 国产99视频精品免视看7| 精品国产31久久久久久| 欧美一级高清免费| 91精品视频大全| 这里只有精品视频在线| 国产精品你懂得| 国产欧美日韩精品专区| 久久99热这里只有精品国产| 永久免费精品影视网站| 日韩av电影手机在线观看| 91超碰中文字幕久久精品| 欧美激情精品久久久久久变态| 国产精品精品久久久久久| 日本欧美在线视频| 91啪国产在线| 色哟哟入口国产精品| 国外日韩电影在线观看| 亚洲香蕉成人av网站在线观看| 久久天堂av综合合色| 国a精品视频大全| 国产精品视频久久久| 亚洲小视频在线观看| 操91在线视频| 97久久精品国产| 在线看欧美日韩| 午夜精品久久久久久久男人的天堂| 亚洲香蕉av在线一区二区三区| 丝袜亚洲另类欧美重口| 在线观看免费高清视频97| 91久久精品久久国产性色也91| 黑人狂躁日本妞一区二区三区| 伊人久久久久久久久久| 精品国产欧美一区二区三区成人| 日韩中文在线不卡| 亚洲成人av资源网| 日韩电影中文字幕在线| 成人羞羞国产免费| 亚洲人午夜精品| 日韩精品在线免费观看| 欧美日韩免费看| 中文国产成人精品久久一| 国产999精品久久久|