日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单词接龙pascal程序

發布時間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单词接龙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程序的全部內容,希望文章能夠幫你解決所遇到的問題。

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