一本通1220 單詞接龍 C

2021-10-08 17:02:37 字數 1346 閱讀 4880

【題目描述】

單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的「龍」(每個單詞都最多在「龍」**現兩次),在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分不能存在包含關係,例如at和atide間不能相連。

【輸入】

輸入的第一行為乙個單獨的整數n(n≤20)表示單詞數,以下n行每行有乙個單詞(只含有大寫或小寫字母,長度不超過20),輸入的最後一行為乙個單個字元,表示「龍」開頭的字母。你可以假定以此字母開頭的「龍」一定存在。

【輸出】

只需輸出以此字母開頭的最長的「龍」的長度。

【輸入樣例】

5

attouch

cheat

choose

tact

a

【輸出樣例】

參考部落格

這個還有這個

**

#include

#include

#include

#include

using

namespace std;

#define min(a,b) (((a)<(b))?(a):(b))

int n, vis[

10000

], ans =0;

//vis用來判斷第i個是否已經被連線過,ans用來儲存最大字串長度

string str[

10000];

//用來儲存輸入的字串

bool

check

(string a, string b,

int k)

//該函式負責判斷now字串的後半部分和當前的str[i]字串的前半部分是否重合

return

true;}

void

add(string& a, string b,

int k)

void

dfs(string now)

//now代表現在正在處理的字串}}

}int

main()

資訊學奧賽一本通C 語言 1220 單詞接龍

題目描述 單詞接龍是乙個與我們經常玩的成語接龍相類似的遊戲,現在我們已知一組單詞,且給定乙個開頭的字母,要求出以這個字母開頭的最長的 龍 每個單詞都最多在 龍 現兩次 在兩個單詞相連時,其重合部分合為一部分,例如beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分...

一本通 1406 單詞替換 詳解

原題 題意解析 題目整體是比較好理解的,將輸入的文章中的特定單詞進行替換即可 解題思路 這個題目我有兩種解題思路 思路一 利用字元陣列來進行,完成輸入後,將待替換的單詞a與原文s進行逐個單詞的比較,如果單詞相同,那麼輸出替換單詞b,具體 如下 includeusing namespace std i...

佇列(一本通)

這道題重點是關係的轉換和初始化 include include include includeusing namespace std int a 101 記錄接著的的那個節點 int n,m int main int ans void bfs int x,int y int main cout in...