PTA 堆栈操作合法性(20 分)】的更多相关文章

7-31 堆栈操作合法性 (20 分)   假设以S和X分别表示入栈和出栈操作.如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列.请编写程序,输入S和X序列,判断该序列是否合法. 输入格式: 输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量.随后N行,每行中给出一个仅由S和X构成的序列.序列保证不为空,且长度不超过100. 输出格式: 对每个序列,在一行中输出YES…
假设以S和X分别表示入栈和出栈操作.如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列.请编写程序,输入S和X序列,判断该序列是否合法. 输入格式: 输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量.随后N行,每行中给出一个仅由S和X构成的序列.序列保证不为空,且长度不超过100. 输出格式: 对每个序列,在一行中输出YES如果该序列是合法的堆栈操作序列,或NO如果不…
7-1 堆栈操作合法性(20 分) 假设以S和X分别表示入栈和出栈操作.如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列.请编写程序,输入S和X序列,判断该序列是否合法. 输入格式: 输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量.随后N行,每行中给出一个仅由S和X构成的序列.序列保证不为空,且长度不超过100. 输出格式: 对每个序列,在一行中输出YES如果该序…
假设以S和X分别表示入栈和出栈操作.如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列.请编写程序,输入S和X序列,判断该序列是否合法. 输入格式: 输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50≤50)是堆栈的最大容量.随后N行,每行中给出一个仅由S和X构成的序列.序列保证不为空,且长度不超过100. 输出格式: 对每个序列,在一行中输出YES如果该序列是合法的堆栈操作序列,或NO…
7-2 输出全排列(20 分) 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出正整数n(<10). 输出格式: 输出1到n的全排列.每种排列占一行,数字间无空格.排列的输出顺序为字典序,即序列a​1​​,a​2​​,⋯,a​n​​排在序列b​1​​,b​2​​,⋯,b​n​​之前,如果存在k使得a​1​​=b​1​​,⋯,a​k​​=b​k​​ 并且 a​k+1​​<b​k+1​​. 输入样例: 3…
给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A1 = 能被 5 整除的数字中所有偶数的和: A2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1−n2+n3−n4⋯: A3 = 被 5 除后余 2 的数字的个数: A4 = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位: A5 = 被 5 除后余 4 的数字中最大数字. 输入格式: 每个输入包含 1 个测试用例.每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过…
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及实际被输入的文字.每段文字是不超过 80 个字符的串,由字母 A-Z(包括大.小写).数字 0-9.以及下划线 _(代表空格)组成.题目保证 2 个字符串均非空. 输出格式: 按照发现顺序,在一行中输出坏掉的键.其中英文字母只输出大写,每个坏键只输出一次.题目保证至少有 1 个坏键. 输入样例: 7…
给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有"数字黑洞"之称的 6174,这个神奇的数字也叫 Kaprekar 常数. 例如,我们从6767开始,将得到 7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 = 8352 8532 - 2358 = 6174 7641 - 1467 = 6174…
PTA 最小堆插入元素和删除堆顶(无哨兵元素) (20分) 对于给定的最小堆(优先队列),分别实现插入元素和删除堆顶的函数. 函数接口定义: int insertIntoHeap(struct Heap* h, int x); // 向堆中插入元素x int deleteMin(struct Heap* h, int* pElement); //将堆顶元素拷贝到pElement所指变量并删除堆顶元素 其中,h.x和pElement为参数,h是堆结构体指针,x是待插入元素的值,pElement指向…
1005 Spell It Right (20)(20 分) Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output every digit of the sum in English. Input Specification: Each input file contains one test case. Each case occupies one l…