题解:CF2168A1 Encode and Decode (Easy Version)

· · 题解

看到 a 小于 26,直接把每个数字映射成一个字母发,另一方反向解码即可。

代码:

#include <bits/stdc++.h>
#define int long long
using namespace std;
void sol1()
{
  int n;
  cin >> n;
  string s;
  for (int i = 1; i <= n; i ++)
  {
    int x;
    cin >> x;
    s.push_back(x + 'a' - 1);
  }
  cout << s << endl;
}
void sol2()
{
  string s;
  cin >> s;
  cout << s.size() << endl;
  for (int i = 0; i < s.size(); i ++)
  {
    cout << s[i] - 'a' + 1 << ' ';
  }
  cout << endl;
}
signed main()
{
  cin.tie(0)->sync_with_stdio(0);
  string s;
  cin >> s;
  if (s == "first")
    sol1();
  else
    sol2();
  return 0;
}