Files
Data-Structure/Exercise/Homework2
2025-11-08 13:46:52 +08:00
..
2025-10-17 13:07:18 +08:00
2025-10-17 13:07:18 +08:00
2025-10-17 13:07:18 +08:00
2025-11-08 13:46:52 +08:00

Q1

编写程序检查给定字符串中包含的括号是否正确匹配,本题中的括号有{ }、[ ]、( )、< >四种。另外再加上一个新的约束条件:当有多种括号嵌套时,嵌套的顺序应为{ → [ → ( → <即ag+b[(d<ef>)]、a+[b+(cd)e]都是正确的匹配而a+(b[c+d])则不是正确匹配。注意本题不允许相同类型括号的嵌套即a+(b(c+d))不是正确匹配。本题不需要判断表达式是否合法,只需判断字符串中包含的括号是否正确匹配。

输入格式:
第一行为一个整数n表示字符串的个数。接下来n行每行为一个字符串。1<n≤100字符串长度不超过1000。

输出格式:
对于每个字符串,若为正确匹配则输出"Match" ,若不匹配则输出"Fail"。

输入样例1:
8
a+(b*[c+d])
g{b[(<c>)d]e}x
[()]
((()))
<>()[]{}
[{}]
x=y+{z+(b)}
][()
输出样例1:
Fail
Match
Match
Fail
Match
Fail
Match
Fail
输入样例2:
6
{[afds(a<afd>)]}yt
[()rew]
<>()[wre]{}
[{qw}]
rew{(weq)}jjk
<><{}>[][](){[{}]}
输出样例2:
Match
Match
Match
Fail
Match
Fail
代码长度限制
16 KB
时间限制
50 ms
内存限制
30 MB
栈限制
8192 KB

Q2

从A点到B点有n个格子小明现在要从A点到B点小明吃了些东西补充了一下体力他可以一步迈一个格子也可以一步迈两个格子也可以一步迈3个格子也可以一步迈4个格子。请编写程序计算小明从A点到B点一共有多少种走法。

grid2.jpg

输入格式:
输入包含多组数据第一行为一个整数mm不超过10000表示输入数据组数。接下来m行每行为一个整数nn不超过100且保证对应的结果小于2 
31
 表示从A点到B点的格子数。

输出格式:
输出为m个整数表示对于每组数据小明从A点到B点的走法数。 

输入样例:
2
5
3
输出样例:
15
4

Q3

本学期的《数据结构》课上老师曾结合汉诺塔问题介绍了使用栈消除递归的方法从而将汉诺塔问题的递归算法转换为非递归算法本题请你编程实现上述非递归算法即使用栈以非递归形式求解汉诺塔问题。将n个圆盘自A柱移至C柱可途经B柱并输出求解过中栈的最大容量最多存储了多少个四元组。

备注:本题将在机器评测后进行人工核验若有同学未按题目要求仅使用递归程序通过本题本题记为0分。
image.png

输入格式:
输入为一个整数n表示初始时A柱上的圆盘数目n不超过20。

输出格式:
按顺序输出各动作每个动作占一行格式为“Move disk from x to y”表示将x柱顶端的圆盘移至y柱。

最后一行为一个整数,表示求解过程中栈的最大容量。

输入样例:
3
输出样例:
Move disk from A to C
Move disk from A to B
Move disk from C to B
Move disk from A to C
Move disk from B to A
Move disk from B to C
Move disk from A to C
5