天天看点

Python描述 第十一届蓝桥杯省赛第一场 试题 I: 字符串编码

第十一届蓝桥杯省赛 第一场试题 I: 字符串编码

  大家好,我叫亓官劼(qí guān jié )
Python描述 第十一届蓝桥杯省赛第一场 试题 I: 字符串编码

试题 I: 字符串编码

时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分

【问题描述】

小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大

写字母,小明将它转换成它在 26 个英文字母中序号,即 A → 1, B → 2, … Z →

26。

这样一个字符串就能被转化成一个数字序列:

比如 ABCXYZ → 123242526。

现在给定一个转换后的数字序列,小明想还原出原本的字符串。当然这样

的还原有可能存在多个符合条件的字符串。小明希望找出其中字典序最大的字

符串。

【输入格式】

一个数字序列。

【输出格式】

一个只包含大写字母的字符串,代表答案

【样例输入】

123242526

【样例输出】

LCXYZ

【评测用例规模与约定】

对于 20% 的评测用例,输入的长度不超过 20。

Python解法

a = input()
len = a.__len__()
# 末尾加个字符,但是len还是之前的len,这样可以防止处理之后越界
a = a + 'Z'
i = 0
re = ""
while( i < len):
    temp = int(a[i]) * 10 + int(a[i+1])
    # 连续两个无法连续
    if(temp > 26):
        re = re + chr(int(a[i]) + 65 -1)
        i = i + 1
    else:
        re = re + chr(temp + 65 -1)
        i = i + 2
print(re)