校內比賽 單詞序列

2022-04-12 03:39:04 字數 1279 閱讀 1467

單詞序列

題解

不得不說,一遇到字串啊怕不是就要涼了,不過不要害怕,我們仔細研究一下

1.輸入

輸入起始字串,終點字串,字典

當輸入回車鍵,說明字典已經輸完了

string可以直接用cin輸入,s.size()可以直接得到長度,可以直接用「=」比較是否相同

scanf讀入c字串, char那種,

string大概只能cin

2.判斷字串a到b能否一步到達

(1)如果他們長度都不相同,那就一定不能一步到達

(2)如果他們兩個單詞當中有乙個字母不同,那就一定可以一步到達

3.廣搜求解

(1)起點入隊,標記一步

(2)佇列非空就一直進行bfs

(3)取出隊首,如果是最終答案,就返回隊首的步數

(4)如果可以一步到達,返回隊首步數+1

(5)否則,列舉所有沒有使用過的單詞,看看由當前狀態是否可以一步轉化,如果可以,就轉化           一步成為新的狀態,步數+1

(6)如果最終都沒有在bfs過程中輸出步數的話,那就是無解,輸出0

**

#include#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

string start,end,s[35

];int n=0

;bool vis[35

];struct

node

;queue

q;bool nyb(string a,string b) //

a->b能否一步到達

int bfs() //

廣搜求解

);

while(!q.empty() )

) ;}}}

return0;

}int

main()

cout

<

return0;

}

翻轉單詞序列

題目描述 牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a stu...

poj 單詞序列

描述 給出兩個單詞 開始單詞和結束單詞 以及乙個詞典。找出從開始單詞轉換到結束單詞,所需要的最短轉換序列。轉換的規則如下 1 每次只能改變乙個字母 2 轉換過程中出現的單詞 除開始單詞和結束單詞 必須存在於詞典中 例如 開始單詞為 hit 結束單詞為 cog 詞典為 hot,dot,dog,lot,...

翻轉單詞序列

題目 牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a stude...