立志用更少的代码做更高效的表达


PAT乙级最优题解——>传送门


外观数列是指具有以下特点的整数序列:

d, d1, d111, d113, d11231, d112213111, …
它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述。比如第 2 项表示第 1 项有 1 个 d,所以就是 d1;第 2 项是 1 个 d(对应 d1)和 1 个 1(对应 11),所以第 3 项就是 d111。又比如第 4 项是 d113,其描述就是 1 个 d,2 个 1,1 个 3,所以下一项就是 d11231。当然这个定义对 d = 1 也成立。本题要求你推算任意给定数字 d 的外观数列的第 N 项。

输入格式:
输入第一行给出 [0,9] 范围内的一个整数 d、以及一个正整数 N(≤ 40),用空格分隔。

输出格式:
在一行中给出数字 d 的外观数列的第 N 项。

输入样例:
1 8
输出样例:
1123123111


分析

经典的字符串处理题。

做这种题的诀窍是:

灵活运用#include<string>中字符串函数。
何时翻转(reverse())?
何时查找(find(), count())?
何时while循环配合判断使用?
在什么情况下截取(substr())?
什么情况下要向整型或浮点型转换(stringstreamsscanf()sprintf())?
等等等等。 函数运用的越纯熟, 我们做题的效率和准确度就越高。

本题需要注意的一点:
字符的数量如果超过10,就需要用一些特殊的转换手段了,如stringstream等。


代码

#include<bits/stdc++.h>
using namespace std;
int main() {string s, s_fin;        //s_fin存放最后结果 int n; cin >> s >> n; for(int i = 0; i < n-1; i++) {for(int j = 0; j < s.length(); j++) {char c = s[j];s_fin += c; int num = 1;while(1) {j++;if(s[j] == c) num++;else break;}j--;stringstream ss; ss << num;  //把num转为字符串后赋值 string s1;  ss >> s1;s_fin += s1;}s = s_fin;  s_fin.clear();}cout << s << '\n';
return 0; }

【简便解法】1084 外观数列 (20分)_24行代码AC相关推荐

  1. 【简便解法】1084 Broken Keyboard (20 分)_16行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 On a broken keyboard, some of the keys are worn out. So when you ...

  2. 1096 Consecutive Factors (20 分)_24行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Among all the factors of a positive integer N, there may exist se ...

  3. 1092 最好吃的月饼 (20分)_24行代码AC

    立志用最少的代码做最高效的表达 PAT乙级最优题解-->传送门 月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种. 若想评比出一种"最好吃"的月饼,那势必在吃 ...

  4. C++学习之路 | PTA乙级—— 1084 外观数列 (20 分)(精简)

    1084 外观数列 (20 分) 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, - 它从不等于 1 的数字 d 开始,序列的第 n ...

  5. 1081 Rational Sum (20 分)_22行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given N rational numbers in the form numerator/denominator, you a ...

  6. 【PAT乙级】1084 外观数列 (20 分)

    题目地址 #include<cstdio> #include<iostream> #include<string> using namespace std; int ...

  7. 【简便解法】1077 互评成绩计算 (20分)_32行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个 ...

  8. 【简便解法】1074 宇宙无敌加法器 (20分)_40行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的.而在 PAT 星人开挂的世界里,每个数字的每一位都 ...

  9. 【简便解法】1089 狼人杀-简单版 (20分)_25行代码AC

    立志用最少的代码做最高效的表达 PAT乙级最优题解-->传送门 以下文字摘自<灵机一动·好玩的数学>:"狼人杀"游戏分为狼人.好人两大阵营.在一局"狼人 ...

最新文章

  1. 【知识积累】C#中结构体和类的区别
  2. 2021年春季学期-信号与系统-第十一次作业参考答案
  3. Codeforces 607B Zuma
  4. windows7环境下的http-server的问题 排查
  5. 创建一个提供数据 API 的 Node.js 网站
  6. 27.能否在构造函数中抛出异常?析构函数呢?
  7. Swift之深入解析闭包Closures的使用和捕获变量的原理
  8. IE6下z-index犯癫不起作用bug的初步研究
  9. 进程间关系和守护进程
  10. 软件工程 案例分析作业
  11. 14. OD-inline patch入门,将一段代码和变量分别注入一个程序中
  12. (53)Verilog HDL上升沿采样
  13. 分别用邻接矩阵和邻接表实现图的深度优先遍历和广度优先遍历_数据结构|图的邻接表与深度、广度优先搜索
  14. 被腾讯看上,叽里呱啦获近亿美元C轮融资
  15. 数据清洗(根据元素匹配选取数据)
  16. 【图像去噪】基于matlab GUI HSI彩色图像去噪【含Matlab源码 1786期】
  17. 盘点2017年热度很高的编程语言
  18. 虚拟机VMware安装学习过程中遇到的几个问题
  19. 2021年危险化学品经营单位安全管理人员考试内容及危险化学品经营单位安全管理人员考试报名
  20. UE4--局域网多人联机

热门文章

  1. C语言程序设计 | 扫雷游戏
  2. 第03讲. 原理探究,了解爬虫的基本原理
  3. cocos2d-x2.2九宫格CCScale9Sprite有bug
  4. linux下使用python操作mysql
  5. 字符函数和内存函数模拟实现
  6. PMP之项目沟通管理
  7. 视频直播中用户连麦技术模型与特点分析
  8. WebRTC编译系统之GYP,gn和ninja
  9. Boost在Linux和windows下的编译 32位 64位
  10. 数据中台离数据资产“价值变现”还有多远?