PTA 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
结尾无空行

解题思路

startInt, round = map(str, input().split())
# startInt, round = map(str, "1 8".split())
res = startInt
# res = str(1231)
for _ in range(int(round)-1):
    # resList = list(res)
    resList = res
    tempStr = None
    tempCount = 0
    res = ""
    for val in resList:
    # for index,val in enumerate(resList):
        if val == tempStr:
            tempCount += 1
        else:#如果不相等,就把上一个输出并新赋值
            if tempStr != None:
                res += tempStr + str(tempCount)
            tempStr = val
            tempCount = 1
    #处理最后一个符号
    res += tempStr + str(tempCount)
print(res)


目录
相关文章
|
6月前
【错题集-编程题】删除相邻数字的最大分数(动态规划 - 线性 dp)
【错题集-编程题】删除相邻数字的最大分数(动态规划 - 线性 dp)
|
C++
(排列,选择类dp)(数论同余定理,同余运算)(以背包为母题)1214. 波动数列
(排列,选择类dp)(数论同余定理,同余运算)(以背包为母题)1214. 波动数列
95 0
|
人工智能 BI
UPC-排课表+玉米田(容斥原理+组合数学公式)
UPC-排课表+玉米田(容斥原理+组合数学公式)
101 0
UPC-排课表+玉米田(容斥原理+组合数学公式)
|
存储 机器学习/深度学习 人工智能
【Python 百练成钢】DNA、蛇形矩阵、Huffuman树、K-进制数、K倍区间、交换瓶子、第几个幸运数、四平方和、The 3n + 1 problem、大数乘法
【Python 百练成钢】DNA、蛇形矩阵、Huffuman树、K-进制数、K倍区间、交换瓶子、第几个幸运数、四平方和、The 3n + 1 problem、大数乘法
【Python 百练成钢】DNA、蛇形矩阵、Huffuman树、K-进制数、K倍区间、交换瓶子、第几个幸运数、四平方和、The 3n + 1 problem、大数乘法
PTA 7-1 打印三角形拼图 (15 分)
一个正方形可以用两个等边直角三角形拼出来。给定正方形的边长、两个三角形和对角线所用的符号,请你打印出这两个三角形拼出的正方形。
132 0
PTA 1056 组合数的和 (15 分)
给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。
116 0
PTA 1061 判断题 (15 分)
判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。
73 0
|
算法
LeetCode 38外观数列&39组合总和
给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。
105 0
LeetCode 38外观数列&39组合总和