单词接龙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程序相关推荐
- python语言单词接龙_Python单词接龙小程序
偶然间阅读资料发现Linux发行版内置了英语词典,随手用Python写个小程序进行词语接龙 规则:用户给出第一个词,系统根据结尾随机给出一个相同开头的词,如此反复 用户词不得重复,单词表中也不含缩写符 ...
- LeetCode 126. 单词接龙 II(图的BFS)
1. 题目 给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列. 转换需遵循如下规则: 每次转换只能 ...
- LeetCode 127. 单词接龙(图的BFS/双向BFS)
文章目录 1. 题目 2. 图的BFS解题 2.1 单向BFS 2.2 双向BFS !厉害了 1. 题目 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord ...
- 信息学奥赛一本通 1220:单词接龙 | 1913:【00NOIP普及组】单词接龙 | OpenJudge NOI 2.5 8783 | 洛谷 P1019 [NOIP2000 提高组] 单词接龙
[题目链接] ybt 1220:单词接龙 ybt 1913:[00NOIP普及组]单词接龙 OpenJudge NOI 2.5 8783:单词接龙 洛谷 P1019 [NOIP2000 提高组] 单词 ...
- java -英语单词接龙
设计思想: 将文件中的单词存入ArrayList数组中,分为前后两个数组,读入单词,经单词字母分解并且通过循环比较单词字母是否相同,相同写入结果文件,不同继续比较,直至找到最大接龙单词长度. 源程序代 ...
- 【每日一算法】单词接龙
微信改版,加星标不迷路! 每日一算法-单词接龙 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度.转换需遵循如下规 ...
- 洛谷 P1019 单词接龙 Label:dfs
题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...
- 洛谷 P1019 单词接龙 (DFS)
题目传送门 当时一看到这题,蒟蒻的我还以为是DP,结果发现标签是搜索-- 这道题的难点在于思路和预处理,真正的搜索实现起来并不难.我们可以用一个贪心的思路,开一个dic数组记录每个单词的最小重复部分, ...
- 算法提高课-搜索-DFS之搜索顺序-AcWing 1117. 单词接龙:dfs
题目分析 来源:acwing 分析:外部dfs,需要状态恢复. 字符串a的后k的字母 和字符串b的前k个字母是否相同,用substr函数判断:if(a.substr(a.size() - k, k) ...
最新文章
- Rocket 架构设计
- 【LibreOJ】#541. 「LibreOJ NOIP Round #1」七曜圣贤
- Lesson 4.1-4.2 逻辑回归模型构建与多分类学习方法逻辑回归参数估计
- 使用SharePoint 2010新增的文档集内容类型来管理文档
- 扎克伯格拒绝参加加拿大议会 或因藐视罪名被拘留
- python调用C语言ctypes详解
- 不要在作死的边缘试探(最后那个英雄手势挺好玩儿的)
- 怎么制作真人qq秀_QQ 首款捏脸产品「卡噗」上线,这是微信也能玩的 3D 厘米秀...
- 有关计算机专业工作室的名字,盘点最好听的工作室名字大全
- 华为认证HCDA免费公开课课表及其交流群公告
- 中望3d快捷键命令大全_CAD常用快捷键命令大全:335个cad快捷键
- 治疗便秘的30种秘方
- 剑指Offer——迅雷笔试题+知识点总结
- C++ __builtin_系列函数
- antd charts实现地图下钻
- ES8中对字符串补白的方式
- Arthur van Hoff
- C/C++小程序学习:n*n魔方矩阵实现每行、每列、每一对角线上的元素之和相等
- 从奥运门票系统瘫痪到家乐福踩踏事件看软件设计中业务模型的处理
- 解决Fabric报“FAILED to execute End-2-End Scenario“问题
热门文章
- <马哲>不变资本与可变资本及其划分意义2017-12-26
- pycharm弹出提示信息Server's certificate is not trusted
- java annotation list_Java 注解 (Annotation)你可以这样学
- 基于内容推荐系统中的常识 [ACM暑校]
- 国外程序员整理的 C++ 资源大全 (zt)
- 一次二次开发中的经验与教训(一)
- pandas 中的函数—— .reset_index()
- Java对象容器——Hash表/散列表
- mysql-explain
- 重构智能合约(上):非确定性的幽灵