PAT 1084 外观数列(20)(代码+思路+推荐测试用例)
1084 外观数列(20 分)
外观数列是指具有以下特点的整数序列:
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
PS:
初看这道题目,好眼熟,是不是很像 P1078的压缩字符串,岂止是像,那边的代码拿过来改一下就能用,这里题目说N<=40,这不是间接的告诉我们用递归么???哈哈,机智如我。
注意:1、确定好压缩次数。
2、有可能直接输出第一项(即不用压缩)(1分的测试点)。
推荐测试点:
in:
123 1
out:
123
#include <iostream>
#include<string>
using namespace std;
string compress(string s, int n) {
if (n == 1) //直到n=1时,不需要压缩
return s;
string cs; //压缩字符串
int count = 1;
for (int i = 0; i < s.length(); i++) {
if (s[i] == s[i + 1]) //与后一个进行比较
count++;
else {
cs += s[i];
cs += to_string(count);
count = 1;
}
}
s = cs;
return compress(s, n - 1); //递归再压缩一次
}
int main() {
string str;
int n;
cin >> str >> n;
cout << compress(str, n);;
return 0;
}
PAT 1084 外观数列(20)(代码+思路+推荐测试用例)的更多相关文章
- PAT乙级:1084 外观数列 (20分)
PAT乙级:1084 外观数列 (20分) 题干 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d ...
- PAT Basic 1084 外观数列 (20 分)
外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述. ...
- PAT 1020 月饼 (25)(精简版代码+思路+推荐测试用例)
1020 月饼 (25)(25 分)提问 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是 ...
- PAT 1084 外观数列
https://pintia.cn/problem-sets/994805260223102976/problems/994805260583813120 外观数列是指具有以下特点的整数序列: d, ...
- 1084 外观数列 (20 分)C语言
外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述. ...
- PAT 乙级 1084. 外观数列 (20) 【字符串】
题目链接 https://www.patest.cn/contests/pat-b-practise/1084 思路 用字符串模拟 然后要注意一点 它是连续的 才并在一起 就比如说 d, d1, d1 ...
- PAT(B) 1084 外观数列(Java)
题目链接:1084 外观数列 (20 point(s)) 题目描述 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, - 它从不等于 ...
- PAT 1024 科学计数法 (20)(精简版代码+思路+推荐测试样例)
1024 科学计数法 (20)(20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+, ...
- PAT 1044 火星数字(20)(思路+代码)
1044 火星数字(20)(20 分) 火星人是以13进制计数的: 地球人的0被火星人称为tret. 地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jl ...
随机推荐
- 抽象工厂模式( Abstract Factory )
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类.解决多产品多等级结构.模式的类图如下: 抽象工厂模式的优点: 易于交换产品系列,由于具体工厂类在一个应用中只需要在初始化的时候出现一 ...
- VB ListView罗列图片
一开始听到job的要求,还真不知道如何下手,用Gridview?好像有做不到把图片show出来的.在网上搜索一遍,发现原来是ListView与Imglist的结合应用. 看设计: Private ...
- UVA327
模拟 这个问题的任务是求解一组c语言里的表达式,但是你不需要知道c语言是怎么解决这个问题!每一行一个表达式,每个表达式的组成不会超过110个字符.待求解的表达式只包含一个int类型变量和一个组有限的操 ...
- VCSA 6.5 升级 VCSA 6.7
VCSA 6.7已于4月17日正式发布,文件名为VMware-VCSA-all-6.7.0-8217866.iso,国内百度网盘已有下载链接,请自行搜索. 下载后解压,运行\VMware-VCSA-a ...
- shell随笔
一, case的详细用法: 参考文章(http://blog.csdn.net/dreamtdp/article/details/8048720) 语句实例:由用户从键盘输入一个字符,并判断该字符 ...
- 深入浅出理解依赖注入这种由外部负责其依赖需求的行为,我们可以称其为 “控制反转(IoC)”
原文地址: http://www.insp.top/learn-laravel-container ,转载务必保留来源,谢谢了! 这个组件现在可以很简单的获取到它所需要的服务,服务采用延迟加载的方式, ...
- 客户端如何连接 DataSnap Server 调用服务的方法
一般http访问的地址是 http://localhost:8099/datasnap/rest/TServerMethods1/EchoString/abc 一.用FDConnection1连接Da ...
- socket 网络连接基础
socket 客户端 import socket 1.client = socket.socket() # socket.TCP/IP 选择连接的类型,默认为本地连接 2.client.connec ...
- 11 python shutil 模块
shutil 模块 高级的 文件.文件夹.压缩包 处理模块 1.将文件内容拷贝到另一个文件中 import shutil f1 = open('os_模块.py','r',encoding='ut ...
- Java使用poi从数据库读取数据生成Excel表格
想要使用POI操作以xsl结尾的Excel,首先要下载poi相关的jar包,用到的jar有: poi-3.9.jar poi-ooxml-3.9.jar poi-ooxml-schemas-3.9.j ...