單詞接龍 遞迴

2021-10-02 15:21:38 字數 1532 閱讀 2237

問題描述

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

輸入格式

輸入的第一行為乙個單獨的整數n (n<=20)表示單詞數,以下n 行每行有乙個單詞,輸入的最後一行為乙個單個字元,表示「龍」開頭的字母。你可以假定以此字母開頭的「龍」一定存在.

輸出格式

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

樣例輸入5at

touch

cheat

choose

tact

a樣例輸出

23樣例說明

連成的「龍」為atoucheatactactouchoose

#include

#include

typedef

struct

zm_t;

void

q_max

(int

,int

,zm_t,

int,

int[

20],int*)

;int

keyfang

(zm_t*

,zm_t*);

void

zhaogx

(int

,zm_t,

int[

20]);

void

shuru

(int

,zm_t)

;int

main

(void);

shuru

(n,dc)

;getchar()

;char tou =

getchar()

;int gx[20]

[20]=

;zhaogx

(n,dc,gx)

;int max =

0,i;

for(i =

0;i < n;i++)}

printf

("%d"

,max)

;return0;

}void

q_max

(int syg,

int n,zm_t dc,

int sum,

int gx[

20],int

*p_max)}}

intkeyfang

(zm_t*q,zm_t*p)}if

(flag)}}

if(max >0)

return max;

}void

zhaogx

(int n,zm_t dc,

int gx[

20])}

}void

shuru

(int n,zm_t dc)

}

1018 單詞接龍

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

1220 單詞接龍

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

zufeoj 單詞接龍

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