PAT乙级刷题心得和常用函数总结 (c++实现)

本文分享了作者在C++中刷PAT乙级算法题目的心得,强调了先画伪码再编码的重要性。文章总结了常用的C++函数和STL操作,如isPrime(), isNumber(), swap(),以及vector排序,set判断相容性,map遍历等。同时,讨论了cin、cout与scanf、printf的效率问题,以及字符串处理和提高代码效率的技巧。" 105353994,7993787,Java实现用户登录与验证码生成,"['Java', '验证码技术', '后端开发', 'Web开发', '用户认证']
摘要由CSDN通过智能技术生成

开始先说最重要心得体会:

写代码前,先在纸上写写画画,写下伪码,理清思路,别上来就敲代码,效率极低还易出现bug。


2019-12-12到2020-01-17,用C++刷完了PAT乙级95道题目,第682个加入满分行列。

题目链接:
PAT乙级真题

乙级真题排名

为每道题撰写了相应CSDN博客:
Zhang35的CSDN个人主页

代码上传到了Github:
PAT-Basic-Level.git

每5道题是一套,分值为15、20、20、20、25,相当于一次PAT乙级考试。题目大都不难,因为乙级不考察数据结构,感觉乙级一道题,基本等于算法分析中的一句伪代码……

其中也有部分比较麻烦的题目,有些测试点很难通过,多亏了柳神的代码可以参考。她代码风格简洁、规范,博客整理的井井有条,对STL库的运用更是十分纯熟。柳神博客:
柳婼 の blog
柳婼的CSDN个人主页

后来每做一道题,无论对错,都会再搜柳神的代码,看有无可优化的地方。下面可能是我唯一一道写的比柳神简单点的:
PAT乙级真题 1087 有多少不同的值 C++实现(求出计算公式,1行代码搞定)

比较难的或代表性的有:
PAT乙级真题 1025 反转链表
PAT乙级真题 1034 有理数四则运算 C++实现(两个int相乘结果应用long long存储)
PAT乙级真题 1035 插入与归并
PAT乙级真题 1040 有几个PAT C++实现
PAT乙级真题 1045 快速排序 C++实现
PAT乙级真题 1050 螺旋矩阵 C++实现
PAT乙级真题 1070 结绳 C++实现(类似求哈夫曼树)
PAT乙级真题 1089 狼人杀-简单版 C++实现(假设+遍历暴力求解)

遇到神坑悬而未解的有:
PAT乙级真题 1030 完美数列 C++实现(测试点4超时神坑)
PAT乙级真题 1035 插入与归并 C++实现(求解答:测试点4浮点错误,但不知道为啥还是得了满分)

一开始基本坚持每天1道,并到后面越刷越快,最多的一天是2020-01-14,刷了9道。收获是熟悉了网上刷题常见套路及C++ STL库的用法。下面总结一些常用操作和技巧。

常用函数

isPrime()

#include <cmath>
bool isPrime(int n){
   
    //用pow(n, 0.5)会超时,sqrt效率大增
    for (int i=2; i<=sqrt(n); i++){
   
        if (n%i==0){
   
            return false;
        }
    }
    return true;
}

isNumber()

用sstream判断字符串是否为数字

#include<sstream>
bool isNumber
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值