PTA题目总结

题型

静态链表

PTA中对链表的考察不像LeetCode,大部分时候的考察是通过静态链表的方式

应答情况

大多数是25分的题,用时大多在25-30分钟,准确率不错

解题思路

静态链表一般会给 address key next 作为一个node,一般情况下数量级会小于10^5 因此可以通过一个大数组存放给的节点,然后通过遍历链表完成操作.

坑点

  1. 一般给的node会比链表中含有的node多,即给了一些不在链表中的node.
  2. 给的链表头结点可能会是-1\NULL即链表可能为空
  3. 要求的操作比如按条件分开,分段排序等,每一段也可能是空的(即不含有相应条件的node),需要做非空判断.

注意事项

  1. 因为需要频繁判空和操作最后一个节点,注意vector.size()的时间复杂度是常数的,返回值类型是unsigned,因此如果使用vector.size()-1这种判断方法结果在空的时候会是个很大的数(溢出).需要注意.

字符串解码编码

应答情况

大多数是25分的题,少部分和排序等一起作用

解题思路

  1. 可以把较短的字符/数字组合成的串按位乘以字符/数字的域编码成数字,然后使用时再解码.
  2. 对于给定较长整串包含多组信息的情况,不妨把需要用到的信息在录入串的时候就一起拆出和串一起储存.或者需要使用string类型,因为string的substr和重载的比较运算符都很好用.注意和strcmp一样,对于值是a和b的string,a<b==1;
  3. 在需要统计的时候可能和map结合,在使用完map后可以把map的内容转到vector里进行排序.

坑点

  1. 题目会很繁杂

注意事项

  1. 一般写起来会分比较多的情况,要求也比较多,写起来很复杂,写之前一定要构思好过程,避免返工.
  2. 可能在输入时和输出时都需要做过滤,一般我把过滤步骤放在输入和从map转到vector的过程中
  3. 注意排序函数的正确性.

排序

就是排序呗,一般是使用结构体数组进行排序,部分题还需要使用map统计

应答情况

大多数是25分的题,用时大多在25-30分钟,准确率不错

解题思路

  1. 一般的排序题直接sort秒
  2. 对于排序-统计之类的题,可以在排序之后使用map等进行统计然后再转回数组储存的方法
  3. 对于要求多种排序的题,最好在一开始就有一个排序来避免超过时间,但是很多种排序的题时间本身很充裕,对单独的要求在要求处单独排也行.

坑点

  1. 有些输入可能是需要过滤的
  2. 排序后的数组可能会是空的,

注意事项

  1. 需要对输出时候的数组进行判空,
  2. 需要在输入的时候进行控制
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值