线性表练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、火车出栈序列
(train.pas)
【题目描述】
输入n(n列火车),输出火车出栈的所有可能顺序。
【输入样例】
3
【输出样例】
3 2 1
2 3 1
2 1 3
1 3 2
1 2 3
【数据规模】
3<=n<=12
二、括号匹配
(LongestRegularBracketsSequence.pas)
【题目描述】
对一个由(,),[,]括号组成的字符串,求出其中最长的括号匹配子串。具体来说,满足如下条件的字符串称为括号匹配的字符串:1.(),[]是括号匹配的字符串
2.若A是括号匹配的串,则(A),[A]是括号匹配的字符串
3.若A,B是括号匹配的字符串,则AB也是括号匹配的字符串。例如,(),[],([]),()()都是括号匹配的字符串,而][,[()],(]则不是。
字符串A的子串是指由A中连续若干个字符组成的字符串。
例如:A,B,C,ABC,CAB,ABCABC都是ABCABC的子串空串是任何字符串的子串。
【输入格式】
输入一行,为一个仅由()[]组成的非空字符串。
【输出格式】
输入也仅有一行,为最长的括号匹配子串。若有相同长度的子串,
输出位置靠前的子串。
【数据规模】
对20%的数据,字符串长度<=100;
对50%的数据,字符串长度<=10,000;
对100%的数据,字符串长度<=1,000,000;
三、马的最短步数
(horse.pas)
【题目描述】
求马在棋盘上从某个起点到某个终点的最少步数。
【输入格式】
第一行,n,m,表示棋盘有n行m列;(2 【输出格式】 一个整数,即最少步数。 【输入样例】: 2 3 1 1 2 3 【输出样例】: 1 四、细胞数目 (cell.pas) 【题目描述】 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。 【输入格式】: 整数m,n(m行,n列)(n,m<=1000) 矩阵 【输入格式】: 细胞的个数。 样例: 【输入样例】: 4 10 023******* 1034560500 2045600671 0000000089 【输出样例】: 4 五、素数路 (prime.pas) 【问题描述】 内阁大臣非常沮丧,他收到了安全部长的消息:他们都需要改变办公室的四位房间号码。 安全部长:经常换换房间号码是出于安全方面的考虑,可以让敌人陷入迷惑。 内阁大臣:但是我选择1033作为我的房间号是出于我个人的偏爱。我可是内阁大臣。 安全部长:你不就是喜欢素数吗?我们给你安排了8179这个号码,你只需要贴四个新数字覆盖住以前的四个老数字就可以了。 内阁大臣:不行,没有那么容易。当我把1033的1用8盖住的时候,8033可不是个素数! 安全部长:我知道,你不能允许你的门上出现非素数。 内阁大臣:正确!所以我必须找到一个方法从1033修改到8179,使得过程中门上出现的永远是素数,而且每次只能够修改当前数字的一位。 这个时候,在旁边偷听的财政大臣忍不住来插嘴。 财政大臣:千万不要为了这个事情增加不必要的开支!我知道换一个数字就是要花一磅! 内阁大臣:那我需要一个计算机来规划一下。 财政大臣:我能够帮助你! 现在这个任务就交给你了。你要从一个四位数的素数出发,每次修改其中的一位,并且要保证修改的结果还是一个素数,还不能出现前导零。你要找到一个修改次数最少的方案,得到我们所需要的素数。 关于1033怎么变到8179,这里是一个最短的方策: 1033 1733 3733 3739 3779 8779 8179 修改了6次,所以要花6磅。 【输入格式】 一行,两个四位的素数(没有前导零),表示初始数和目标数。 【输出格式】 一个数,表示最少的操作次数。如果不可能,输出“Impossible”