【题解】CF2168A1 Encode and Decode (Easy Version)
由于 Codeforces 启用了 Cloudflare 进行全站防护,导致洛谷 RemoteJudge 失效,所以请前往 CF 提交本题。
题目大意
本题是一道通信题,分为编码与解码两个独立阶段。
程序首先在编码阶段读取整数 n 和数组 a,并将其编码为一个仅由小写字母组成的字符串 s。
接着在解码阶段,读取之前输出的字符串 s,解码还原出原始的 n 和数组 a。
两个阶段由题目第一行所输入的 first 和 second 区分。
特别地,这两个部分完全独立运行,彼此间不共享任何数据。
解题思路
我们发现这是一道 Easy Version(简易版)题目且
- 编码方式:将每个数字直接映射为对应的字母;
- 解码方式:将每个字母转换回对应的数字。
核心代码如下:
string en(int a[],int n)//编码
{
string s;
for(int i=0;i<n;i++)
s+='a'+a[i]-1;
return s;
}
int de(const string& s,int a[])//解码
{
int n=s.size();
for (int i=0;i<n;i++)
a[i]=s[i]-'a'+1;
return n;
}