NC15940. 译码
描述
例如输入000021757511222,每五位编号对应于一个字符串
编号00002对应字符串 aac
编号17575对应字符串 zzz
输入描述
输入第一行包含一个整数T,代表测试案例个数。(0 < T ≤10)
接下来每个测试案例包括两行,第一行为一个整数length(0<length<=100),代表数字串的长度,第二行为长度为length的数字串。
输出描述
输出数字串对应的原字符串。
示例1
输入:
2 10 0000000001 15 000021757511222
输出:
aaaaab aaczzzqpq
C 解法, 执行用时: 2ms, 内存消耗: 276K, 提交时间: 2023-04-10 00:52:33
#include <stdio.h> int main (){ int n,m,t,a,b,c; scanf("%d",&n); while(n--) { scanf("%d",&m); m=m/5; while(m--) { scanf("%5d",&t); c=t%26; t=t/26; b=t%26; a=t/26; printf("%c%c%c",a+'a',b+'a',c+'a'); } printf("\n"); } }
Python3(3.9) 解法, 执行用时: 36ms, 内存消耗: 4480K, 提交时间: 2022-04-20 00:01:45
import re for i in range(int(input())): n=int(input()) str1=input() list1=list(map(int,re.findall(r'.{5}', str1))) list1=list(map(lambda s:chr(97+s//26//26)+chr(97+s//26%26)+chr(97+s%26),list1)) print(''.join(list1))
C++(clang++ 11.0.1) 解法, 执行用时: 3ms, 内存消耗: 288K, 提交时间: 2023-07-04 08:02:15
#include<bits/stdc++.h> using namespace std; int main() { int n,t,a; cin>>t; while(t--) { cin>>n; for(int i=1;i<=n/5;i++) { scanf("%5d",&a); printf("%c%c%c",a/26/26+'a','a'+a/26%26,'a'+a%26); } cout<<endl; } }
pypy3 解法, 执行用时: 100ms, 内存消耗: 25672K, 提交时间: 2022-03-22 18:06:32
for T in range(int(input())): l = int(input()) s = input() for _ in range(int(l/5)): t = int(s[_*5:_*5+5]) print(chr(97+t//676)+chr(97+(t%676)//26)+chr(97+t%26),end = '') print('')