搜索
您的当前位置:首页正文

PAT 1084 外观数列 python

来源:好走旅游网

1084 外观数列 (20 分)

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

它从不等于 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

作者: CHEN, Yue
单位: 浙江大学
时间限制: 400 ms
内存限制: 64 MB
代码长度限制: 16 KB

问题分析:
判断及循环部分与1078的压缩部分类似,本题稍加修改

代码:

def array(d):
    d = d + '?'
    tmp = d[0]
    rst = ''
    ct = 1
    for i in d[1:]:
        if i == tmp:
            ct += 1
        else:
            if ct == 1:
                rst += tmp + '1'
            else:
                rst += tmp + str(ct)
            ct = 1
        tmp = i
    return rst


d, n = input().split()
for _ in range(int(n) - 1):
    d = array(d)
print(d)

因篇幅问题不能全部显示,请点此查看更多更全内容

Top