试题 I: 字符串编码 时间限制: 1.0s 内存限制: 512.0MB 本题总分 25 分 【问题描述】 小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大 写字母 小明将它转换成它在 26 个英文字母中序号 即 A →
第十一届蓝桥杯省赛 第一场试题 I: 字符串编码
??大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客
本文原创为亓官劼,请大家支持原创,部分平台一直在盗取博主的文章!!!
博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客
试题 I: 字符串编码
时间限制: 1.0s 内存限制: 512.0MB 本题总分:25 分
【问题描述】
小明发明了一种给由全大写字母组成的字符串编码的方法。对于每一个大
写字母,小明将它转换成它在 26 个英文字母中序号,即 A → 1, B → 2, … Z →
26。
这样一个字符串就能被转化成一个数字序列:
比如 ABCXYZ → 123242526。
现在给定一个转换后的数字序列,小明想还原出原本的字符串。当然这样
的还原有可能存在多个符合条件的字符串。小明希望找出其中字典序最大的字
符串。
【输入格式】
一个数字序列。
【输出格式】
一个只包含大写字母的字符串,代表答案
【样例输入】
123242526
【样例输出】
LCXYZ
【评测用例规模与约定】
对于 20% 的评测用例,输入的长度不超过 20。
对于所有评测用例,输入的长度不超过 200000。
C++解法地址为:C/C++/Python描述 第十一届蓝桥杯省赛 第一场(2020.7.5) 试题 I: 字符串编码 题目+题解
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)
亓官劼
CSDN认证博客专家
Python
全栈
数据结构与算法
大家好,我是亓官劼(qíguānjié),在博客中分享数据结构与算法、Python全栈开发、Java后端开发、前端、OJ题解及各类报错信息解决方案等经验。一起加油,用知识改变命运,未来可期。若有事项需联系博主,可通过Q1710269687进行联系,有空会回复。
以上信息来源于网络,如有侵权,请联系站长删除。