PAT2021年春季3月份备考_按照套卷刷真题(4-1)

本文作者分享了在PAT编程比赛中取得满分的经验,强调了先尝试后查阅解题报告的学习方法,以及PAT题型的稳定性和规律性。建议先做题再补充相关知识,重视类型题的系统学习,特别是对于字符串处理的题目。此外,作者推荐使用Visual Studio进行STL的调试,并提醒考生在考试时注意编译器的差异。
摘要由CSDN通过智能技术生成

题干:1140 Look-and-say Sequence (20 分)

题解:做了35分钟左右,答案是满分,中间没有参考别的材料。。。这个是相当理想的一个结果了,但是还是又不少值得总结的东西,我其实开这个博客的主要目的,是给我水平接近的小伙伴解惑,我主要谈的是学习方法和时间安排上的问题,这是一些所谓的“软文博主”,经常夸大和回避的问题。。。但是我觉得一种科学的方法和心态对于求学路上的我们和具体的知识一样重要

  1. 首先要达到这个程度,之前就需要见过一定量的类型相似的题目,PAT里面有不少字符串处理的题目都可以进行练习的,这里所说的练习并不是你之前都要靠自己写出来,从应试的角度来看,你更应该才用的方法是自己想一下,就想一会儿(15分钟顶天了吧),如果没有思路,马上就去阅读别人的解题报告或者答案,而且通常情况下,你并不会完全读懂。。。能完全读懂你基本上最初也会写了。。。。你如果和我一样,没有比较深的接触过C++的编程,比如果没有接触过string,STL这样的概念,你还需要几篇专门讲解相关知识的博客来补充
  2. 我比较推荐你先做题,然后再通过题目里面不会的地方去学习知识点,这是一种通过实践证明非常科学的学习方法。。。虽然看起来有点不合逻辑,但是相信我,这样是最有效率的方式。。。。当然如果你一下子觉得自己的知识点缺漏太多(亲身经历。。。)可以用一些教材(因为博客可能比较零散)。。。来理一下大体的知识结构。。。但是这个时候你离真正能够独立完成一道题还是有相当的距离(同样是亲身经历。。。),那时候看着真题真的有一种有心无力的绝望感。。。
  3. PAT和一些算法的题库比如LeetCode之类的,有的博主会做一些分类的题型整理,这里我其实更想告诉大家如何正确的利用这些归类好的类型题,首先我想要告诉你,PAT的命题基本是稳定的,它考察的题型不会变化太大,是有规律可循的,虽然这些题目表面上看起来花里胡哨。。。其次我想告诉你,你如果处在一个自己认为要去刷类型题的阶段时,你对自己的要求并不是做会全部的题目。。。。你对自己的要求应该是通过这些类型题,系统的学习一类的题目的编写的基本的范式和共性。。。类型题的最大作用是让你系统的学习一个题型,你完全可以把练习或者测验自己的水平放在最后的真题后者冲刺阶段
  4. 还有所谓的类型题,并不是对这些知识点的简单应用和组合,还需要掌握不少额外的代码和逻辑才能形成一个完整的程序,这些才是你在类型题里面需要练习的重中之重。。。。PAT的甲级难度适中,时间上适合我们这种大学起开始学习计算机知识的同学去学习,它只要你足够努力,应该就能取得一个不错的成绩,它的难度和ACM竞赛,NOIP这样的有一定的差别,其实难度主要的区别在于少考察了不少的知识点。。。。。如果有时间,我相信我们其实一样可以做到。
  5. 最后我想告诉你的是,如果你的代码里面有用STL,请在学习和练习的时候无比采用visual studio的编译器,如果你的电脑支持,越高的版本越好。。。你千万不要管考场上能不能用,因为如果没有经过visual studio里面调试器的反复调试,你根本不知道STL使用的时候可能会遇到的一些深坑。。。。在你熟练以后再去用dev考试,那问题不是很大,我的每篇博客几乎都在苦口婆心的劝大家去用vs,请你们务必相信我!!!
  6. // A1140.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    
    #include <bits/stdc++.h>
    using namespace std;
    #pragma warning(disable:4996)
    int main()
    {
    #ifndef ONLINE_JUDGE
        freopen("in.txt", "r", stdin);
    #endif // !ONLINE_JUDGE
    
        int  n;
        string d;
        cin >> d >> n;
        for (int i = 0; i < n-1; i++) {//serveal time repeat 
            string t="";
            for (int j = 0; j < d.size(); j++) {//several bit;
                int count=0;
                for (int k = j ; k < d.size(); k++) {//one index look one time
                    if (d[k] == d[j]) {
                        count++;
                        j = k;
                    }
                    else {
                        break;
                    }
                }
                t += d[j];
                t += to_string(count);
            }
            d = t; 
            //cout << d<<endl;
        }
        cout<< d;
        //have the answer;
        return 0;
    }
    
    

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Exodus&Focus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值