描述
給出兩個單詞(開始單詞和結束單詞)以及乙個詞典。找出從開始單詞轉換到結束單詞,所需要的最短轉換序列。轉換的規則如下:
1、每次只能改變乙個字母
2、轉換過程中出現的單詞(除開始單詞和結束單詞)必須存在於詞典中
例如:開始單詞為:hit
結束單詞為:cog
詞典為:[hot,dot,dog,lot,log,mot]
那麼一種可能的最短變換是: hit -> hot -> dot -> dog -> cog,
所以返回的結果是序列的長度5;
注意:1、如果不能找到這種變換,則輸出0;
2、詞典中所有單詞長度一樣;
3、所有的單詞都由小寫字母構成;
4、開始單詞和結束單詞可以不在詞典中。
輸入
共兩行,第一行為開始單詞和結束單詞(兩個單詞不同),以空格分開。第二行為若干的單詞(各不相同),以空格分隔開來,表示詞典。單詞長度不超過5,單詞個數不超過30。輸出輸出轉換序列的長度。
樣例輸入
hit cog
hot dot dog lot log
樣例輸出
5
解題思路:
bfs的運用,注意字串的輸入部分的格式,當cin.get()=='\n'時,while(cin>>s)結束輸入
# include# include# include# includeusing namespace std;
struct e
m[1000];
queueq;
int mark[1000];
int vis=0;
int judge(string a,string b)
} return count;
}int main()
m[index].s=t;
m[index].cnt=0;
q.push(1);//初始點
while(q.empty()==false)
else
}} }
if(vis==0)
printf("0\n");
return 0;
}
POJ4128單詞序列
描述 給出兩個單詞 開始單詞和結束單詞 以及乙個詞典。找出從開始單詞轉換到結束單詞,所需要的最短轉換序列。轉換的規則如下 1 每次只能改變乙個字母 2 轉換過程中出現的單詞 除開始單詞和結束單詞 必須存在於詞典中 例如 開始單詞為 hit 結束單詞為 cog 詞典為 hot,dot,dog,lot,...
翻轉單詞序列
題目描述 牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a stu...
翻轉單詞序列
題目 牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a stude...