poj 單詞序列

2021-08-19 19:56:22 字數 1212 閱讀 1735

描述

給出兩個單詞(開始單詞和結束單詞)以及乙個詞典。找出從開始單詞轉換到結束單詞,所需要的最短轉換序列。轉換的規則如下:

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...