python-译码(赛氪OJ)

[题目描述]

在机器学习中,现在定义一种编码规则:对于长度为 3的字符串(均由小写字母组成),首先按照字典序进行排序,即 aaa,aab,aac,...,zzz。

将这些字符串按照顺序依次从 00001 至 17575 编码(前缀 0 不可省略),即aaa=00000,aab=00001,aac=00002,...,zzz=17575 。

现在给出一串数字,请你通过计算输出这串数字对应的原字符串。(输入保证该数字长度为 5 的倍数)。

例如输入 000021757511222 ,每五位编号对应于一个字符串。

编号 00002 对应字符串 aac 。

编号 17575 对应字符串 zzz 。

编号 11222 对应字符串 qpq。

故输出为 aaczzzqpq。
输入格式:

输入共两行。

第一行为一个整数 length,代表数字串的长度。

第二行为长度为 length 的数字串。
输出格式:

输出数字串对应的原字符串。
样例输入

10

0000000001
样例输出

aaaaab
数据范围

对于 100% 的数据,保证 1≤n≤2,000,000,000。

来源/分类(难度系数:三星 )
字符串

++完整代码展示:++

n=int(input())

s=list(input())

m=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

def string(s):

s.reverse()

sum=0

for i in range(0,len(s)):

sum+=eval(s[i])*10**i

a=""

for i in range(0,26):

for j in range(0,26):

for k in range(0,26):

if 676*i+26*j+k==sum:

a+=m[i]

a+=m[j]

a+=m[k]

break

return a

sum=""

b=0

while b<len(s):

c=s[b:b+5]

sum+=string(c)

b+=5

print(sum)

++代码解释:++

"n=int(input())
s=list(input())
m=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
",让用户输入需破译的密码长度n,接着让用户输入该密码,将其储存在列表s中。建立一个列表m,储存a~z的26个字符。

"def string(s):
s.reverse()
sum=0
for i in range(0,len(s)):
sum+=eval(s[i])*10**i
a=""
for i in range(0,26):
for j in range(0,26):
for k in range(0,26):
if 676*i+26*j+k==sum:
a+=m[i]
a+=m[j]
a+=m[k]
break
return a
",自定义一个函数string():s作为形参,将s反转,接着令sum=0,依次遍历s中的元素,将其转换为可计算数值,sum+=eval(s[i])*10**i。建立一个空字符串a,接着遍历0~26个数字,查找676*i+26*j+k==sum的情况,并让a依次连接m[i],m[j],m[k],以break函数结束,避免重复添加。最后返回a的最终结果。

"sum=""
b=0
while b<len(s):
c=s[b:b+5]
sum+=string(c)
b+=5
print(sum)
",建立一个空字符串sum,令b为循环密码字子,初始值为0,c=s[b:b+5],sum连接string(c),每循环一次,就令b+5,直至b==len(s),跳出整个while循环。打印sum的最中结果。

++运行效果展示:++

++++

(声明:以上内容均为原创)

相关推荐
_.Switch19 分钟前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
老猿讲编程24 分钟前
一个例子来说明Ada语言的实时性支持
开发语言·ada
Chrikk1 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*1 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue1 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang
杜杜的man1 小时前
【go从零单排】go语言中的指针
开发语言·后端·golang
测开小菜鸟1 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
好奇龙猫2 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
sp_fyf_20243 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
萧鼎3 小时前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步