PTA刷题
文章平均质量分 79
芝士就是菜
公众号:芝士就是菜
展开
-
数组模拟设计循环队列
1、题目描述设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。...原创 2022-05-16 17:00:52 · 134 阅读 · 0 评论 -
栈和队列相互模拟实现
一、队列模拟实现栈1、题目描述请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop和empty)。2、过程分析3、代码实现class MyStack {public: MyStack() { } queue<int> q1; queue<int> q2; void push(int x) { if(q1.empt..原创 2022-05-16 14:53:24 · 292 阅读 · 0 评论 -
PTA-7-37 整数分解为若干项之和 (20 分)
void operator=(Add n) { }在赋值运算符重载的时候,这个重载函数的参数到底需不需要加&呢?不加&会发生什么?#include <iostream>using namespace std;class Add{public: Add(int n) { m_Num = new int(n); } void operator=(Add n) { ...原创 2021-10-29 16:07:56 · 1595 阅读 · 4 评论 -
PTA 6-12 二叉搜索树的操作集 (30 分)
综述: 本题为二叉搜索树增删查改相关操作集,但是难度比链表顺序表要难,其中二叉搜索树的特性让我们容易完成相关操作,二叉搜索树的父节点的data值大于左孩子节点的data值小于右孩子节点的data值,该树定义由递归定义,也就是说对一个二叉搜索树来说 它的每一个节点都满足根节点大于左小于右的特点,也正是由于由于二叉搜索树的该特性,让增删查改操作变得简单,其中在此操作集中,插入、寻找操作不难,删除操作情况较多,本文仅用一种删除的做法。目录综述:题目:函数接口定义:裁...原创 2021-10-14 20:01:50 · 3206 阅读 · 10 评论 -
PTA 7-38 数列求和-加强版 (20 分) - 超过整数范围怎么处理?
综述:本题只有一个难点,就是当N非常大的时候,比如N取100000而a取9,这将是一个非常大的数,int、long、long long 我都试过,都存不下,这个时候只能将最后和的数一位一位的往数组中存,N的最大值为100000,那么最后和最大为1000000位,我们用个1000000的数组就能存下最后的结果,那么具体怎么用数组对其操作呢?下文将详细讲述此过程。题目:给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如原创 2021-09-12 21:24:05 · 1748 阅读 · 5 评论 -
PTA 7-35 有理数均值 (20 分) - 最大N浮点错误怎么回事?
综述: 有理数均值这道题有两个地方不好做,第一个地方是,你再分式相加的时候,你要不随时化简容易溢出。第二个地方是第四个测试点,最大N,浮点错误问题,第二个地方还是不容易发现这个错误,因为这个最大N的提示太容易误导人。 目录综述:题目:输入格式:输出格式:输入样例1:输出样例1:输入样例2:输出样例2:解题思路:注意点(浮点错误问题):AC代码:提交结果:总结:题目:本题要求编写程序,计算N个有理数的平均...原创 2021-08-29 12:47:37 · 1401 阅读 · 8 评论 -
PTA 7-32 说反话-加强版 (20 分) - 不愧是加强版呀!
综述: 这道题思路从开始看这道题,到我做对这道题可是一直没变过呀!但是总是做错让人烦的狠,Debug了好大会才全部正确,细节边界部分控制起来不那么容易~ 本篇博客将从思路到程序构造到注意事项以及实现代码一一列举分析,当然如果有更好的思路也欢迎大家讨论。目录综述:题目:输入格式:输出格式:输入样例:输出样例:注意!注意!注意!:解题思路:另一个问题:解决方法:AC代码:提交结果(注意测试点):总结:题目...原创 2021-08-28 14:25:28 · 2483 阅读 · 6 评论 -
PTA 7-29 删除字符串中的子串 (20 分)-嵌套字串怎么办啊?
综述: 本题删除字串的情况也挺多的,一个比较难一点的地方就是嵌套的字串部分,如例子中的ccatat,当你删除了中间的cat之后,你会发现又出现了cat,这其实还是挺麻烦的,意味着你不仅仅只遍历一遍字符串,你要遍历好几遍,直至字符串中没有字串的存在。目录综述:题目:输入格式:输出格式:输入样例:输出样例:解题思路:程序设计:实现代码:提交结果:结论:题目:输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S...原创 2021-08-26 15:21:40 · 1418 阅读 · 4 评论 -
PTA 7-28 猴子选大王 (20 分)-gcc编译器过不了?
综述: 猴子选大王这道题看着好像挺简单的,但是实际做起来也不容易。猴子的编号从1到N,然后报数,首先面对的第一个问题是怎么存储这些个猴子,我最开始想用链表,因为链表删除数据容易点,而数组要是删除中间的某一个数据需要把后面的元素全往前挪,这太麻烦了。但是我最后还是选择了数组,因为链表C语言需要一大堆代码~而且有时候PTA编译也可能有问题。 本博客便针对数组如何实现找到最后剩下的那个猴子作为猴王,并且说一个现象,PTA的gcc编译器,编译我写的代码会有问题,必须切换到cla...原创 2021-08-25 20:25:21 · 379 阅读 · 3 评论 -
PTA 6-9 二叉树的遍历 (25 分)-层序怎么遍历?
综述: 本题前中后序遍历二叉树都很简单,层序遍历就没那么容易了,我开始是用队列实现的层序遍历,但是不知道为什么在PTA上跑不过,但是在VS上我测试程序是没有问题的,可能是编译器的原因,在PTA上我只能用另一个方法实现层序的遍历,在本文中,将讲述队列实现层序遍历以及在PTA上跑过的另外一种方法遍历,其实两种方法的思想还是挺相像的。并且我在最后会贴上VS的测试用例。目录综述:题目:函数接口定义:裁判测试程序样例:输出样例(对于图中给出的树):函数接口1-...原创 2021-08-23 19:14:24 · 1385 阅读 · 2 评论 -
PTA 6-7 在一个数组中实现两个堆栈 (20 分)-Top的取值怎么回事?
综述: 本博客将讲述如何在一个数组内实现两个堆栈的思路,并一步步带大家实现函数的三个接口:创建、插入、删除。并在后文提出一个关于TOP取值的问题,我会分析一下两种初始取值方法,然后留一个疑问(给博主说明白私信我发个小小小红包~~)。目录综述:题目:函数接口定义:裁判测试程序样例:输入样例:输出样例:函数接口1-创建堆栈:CreateStack(int MaxSize)-代码:函数结构2-插入元素:Push(Stack S, Element...原创 2021-08-19 12:48:13 · 738 阅读 · 6 评论 -
PTA 6-6 带头结点的链式表操作集 (20 分)-简单点的链表
综述: 单向带头节点的链表比起普通的链表来说多了一个head,这个head不做存储数据的作用,它只用来存储第一个节点的位置, 有了这个头节点之后,链表插入时头插不用再做额外的判断,链表的头删也同样如此,增删查改相关的函数接口代码写起来会变的更加简单一些。 具体代码可以对比PTA不带头单向不循环链表操作集,两边代码大致一看就能发现带头节点的好处啦,在博客后面内容也会分析带头节点的好处。目录综述:题目:函数接口定义:裁判测试程序样例:输入样例:...原创 2021-08-17 23:47:36 · 1323 阅读 · 3 评论 -
PTA 6-5 链式表操作集 (20 分)-链表基础操作
综述: 该题目链表是单向不带头不循环链表,需要实现3个接口,分别是插入、查找、删除三个基础操作,PTA的数据结构基础题感觉练手挺好的。题目:本题要求实现链式表的操作集。函数接口定义:Position Find( List L, ElementType X );List Insert( List L, ElementType X, Position P );List Delete( List L, Position P );其中List结构定义如下:t...原创 2021-08-16 17:12:21 · 3844 阅读 · 6 评论 -
PTA 6-2 顺序表操作集 (20 分)-容易做错
综述: 该题为数据结构顺序表基本操作相关的题目,其中包括插入、寻找、删除以及创建线性表共4个要求,题目给了函数接口的定义,要求你写相关函数,我开始在做这个题的时候对这个题的意思有了点误解,题目说Last保存最后一个元素的位置,然后它要开MAXSIZE个int大小的空间,因为这个Last的描述我开始忽略了顺序表的特性,让我难受了好久。本篇博客大致讲解一下该题目的做法。题目:本题要求实现顺序表的操作集。函数接口定义:List MakeEmpty();...原创 2021-08-11 18:30:43 · 2064 阅读 · 1 评论 -
PTA习题9-4 查找书籍 (20 分)-输入字符要留心!
综述: 这道题,思路简单容易做,但是在输入字符串格式上十分容易做错,输入格式有两个易犯错误,一个是scanf()函数以及该函数之后的回车,另一个则是初始数组大小的定义。本篇博客通过调试简要分析一下两个格式上的错误。 附:该题在最大字符串输入上没有案例,我打了一个最大字符串测试的输入案例,如果对DeBug感兴趣可以直接用我这个例子,不用再自己手敲了。目录综述:题目:输入格式:输出格式:输入样例:输出样例:输入样例(补最大字符串):...原创 2021-08-08 22:31:33 · 1280 阅读 · 0 评论 -
PTA习题8-7 字符串排序 (20 分)-用下qsort,直接变成麻瓜题目!
鹏哥讲过的qsort()函数,一直没用过,今天恰好碰到一个非常合适的排序题,看题目觉的挺麻烦,只要一用qsort函数,这个题立马变成一个麻瓜题目,两分钟敲完。原创 2021-08-07 23:34:24 · 2346 阅读 · 0 评论 -
PTA习题7-8 字符串转换成十进制整数 (15 分)-思路容易有,但是不容易做对哦~
综述: 本题整体思路很容易想到,但是具体实现起来倒是特别容易出错误题目:输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。输入格式:输入在一行中给出一个以#结束的非空字符串。输出格式:在一行中输出转换后的十进制数。题目保证输出在长整型范围内。输入样例:...原创 2021-08-07 11:16:42 · 2031 阅读 · 4 评论 -
PTA习题7-2 求一批整数中出现最多的个位数字 (20 分)-难!
题目:给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。输入格式:输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。输出格式:在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字...原创 2021-08-04 17:19:28 · 3060 阅读 · 4 评论 -
PTA练习7-10 查找指定字符 (15 分)-gets()函数不起作用?
综述: 今天分享的这个题挺好,有一个有意思的问题和一个常见错误,先说有意思的问题:不知道大家在输入一串字符的时候会不会用到gets()函数或者fgets()函数,还是会循环逐个输入,反正我是比较习惯使用gets()/fgets()函数的,感觉比较方便哈哈哈哈,但是在这个题中,会有一个问题,就是你的gets()/fgets()函数会不起作用,不知道大家做这个题的时候有没有遇到这个问题,遇到这个问题有没有解决。然后再说一下一个易错错误,我感觉刷这个题的人应该有很多会 犯,就是当index=ma...原创 2021-08-03 15:27:14 · 1173 阅读 · 2 评论 -
PTA练习7-4 找出不是两个数组共有的元素 (20 分)-麻烦
综述: 该题大概思路容易想到,找不是两个数组共有的元素倒是挺好找,但是具体实现起来也是不大容易,多个输入时调试也挺麻烦的,主要做起来有个比较麻烦的地方。就是不是两个数组共有的元素有两个,但是最终只能够输出一个,要把重复的元素过滤掉还是挺难搞的,还有一个地方是,输出的最后不能有空格,这句话虽然是个要求,但是给了我个思路,如果找到一个打印一个的话既难以过滤重复的数字,也不容易在末尾不打印空格,这时候就自然而然的有个想法了,那就是先找到不重复的元素一个接一个的放到一个空白的数组中,等找完所有元素...原创 2021-08-01 20:22:49 · 2402 阅读 · 3 评论 -
PTA练习7-2 求最大值及其下标 (20 分)-中规中矩
综述: 本题总体中规中矩,只有一个问题,就是打印第一个最大数的下标,当输入一串数字的时候可能最大的那个数字不止一个,那么当我们找到第一个最大数的时候就可以打印最大数以及下标了。题目:本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。输入格式:输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出最大值及最大值的最小下标,中间用一个空格分...原创 2021-07-31 22:26:20 · 1662 阅读 · 0 评论 -
PTA习题4-11 兔子繁衍问题 (15 分)-好容易入坑
综述: 刷了40多道题,论最坑爹的一道题我认为非兔子繁衍莫属,我刷这道题花了一整个下午,自认为我是对的,但是上传到PTA总是部分正确,最后屈服了在网上搜了下,最后终于发现问题:就是如何才算3个月,我所理解的3个月和题目描述的的三个月有所偏差,导致整个题做错。感觉题目描述不清不楚。 在下文中我会将我理解的题目,分享一下想法和思路,以及题目正确的做法和思路。题目 :一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔...原创 2021-07-30 22:39:07 · 1381 阅读 · 3 评论 -
PTA习题4-5 换硬币 (20 分)——易犯错误以及思路分享
目录综述:题目:输入格式:输出格式:输入样例:输出样例:正确代码:问题1:解决方法:问题2: 解决办法:综述:换硬币这个题在编写时思路较简单,把每一种情况列出来,符合条件的进行打印即可,但是这个换硬币题也有非常容易犯的错误,也困扰了我挺长时间,这次博客分享一下这些问题。本题目我在编写的时候遇到两个问题:1:结果正确能罗列出所有情况,但是上传PTA检测只是部分正确。 ...原创 2021-07-29 16:28:51 · 2914 阅读 · 1 评论 -
习题4-2 求幂级数展开的部分和 (20 分)-程序运行时间过长大坑问题
1原创 2021-07-28 22:03:14 · 1160 阅读 · 1 评论