日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

单词接龙pascal程序

發布時間:2025/3/15 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单词接龙pascal程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意

現在我們已知一組單詞,且給定一個開頭的字母,要求出以這個字母開頭的最長的“龍”(每個單詞都最多在“龍”中出現兩次),在兩個單詞相連時,其重合部分合為一部分,例如 beast和astonish,如果接成一條龍則變為beastonish,另外相鄰的兩部分不能存在包含關系,例如at 和 atide間不能相連。


var
a:array[0..20] of string;
b,c:array[0..20] of longint;
l,n:longint;
s:string;
ss,max:integer;
procedure link(tou:string);
var
k,j,i:longint;
s1,s2:string;
begin
? ? for i:=1 to n do
? ? if c[i]<2 then
? ? begin
? ? ? ? s:=a[i];
? ? ? ? if length(tou)>=b[i] then k:=b[i]-1 else k:=length(tou);
? ? ? ? s1:='';
? ? ? ? s2:='';
? ? ? ? for j:=1 to k do
? ? ? ? begin
? ? ? ? ? ? s1:=tou[length(tou)+1-j]+s1;
? ? ? ? ? ? s2:=s2+s[j];
? ? ? ? if s1=s2 then
? ? ? ? begin
? ? ? ? ? ? ss:=ss+b[i]-j;
? ? ? ? ? ? if ss>max then max:=ss;
? ? ? ? ? ? inc(c[i]);
? ? ? ? ? ? link(a[i]);
? ? ? ? ? ? dec(c[i]);
? ? ? ? ? ? ss:=ss+j-b[i];
? ? ? ? end;
? ? end;
end;
end;
begin
? ? readln(n);
? ? max:=0;
? ? for l:=1 to n do
? ? begin
? ? ? ? readln(s);
? ? ? ? a[l]:=s;
? ? ? ? b[l]:=length(s);
? ? ? ? c[l]:=0;
? ? end;
? ? readln(s);
? ? ss:=length(s);
? ? link(s);
? ? writeln(max);
end.




轉載于:https://www.cnblogs.com/YYC-0304/p/9500209.html

總結

以上是生活随笔為你收集整理的单词接龙pascal程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。