解説動画はこちら!
コード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define rep(i, n) for (int i = 0; i < (n); ++i)
// POINT: 変換の処理を最初に整理する
// アルファベット順で'a'から数えた数で管理をする
// 例: 'a': 0, 'b': 1, 'c': 2, ... , 'r': 17, ... , 'z': 25
int main() {
int n;
cin >> n;
string s;
cin >> s;
vector convert(26);
rep(i, 26) convert[i] = i;
int q;
cin >> q;
rep(i, q) {
char c, d;
cin >> c >> d;
int cIndex = c - 'a';
int dIndex = d - 'a';
rep(j, 26) {
if (convert[j] == cIndex) convert[j] = dIndex;
}
}
// for (int i = 0; i < 26; i++) {
// cout << i << " " << convert[i] << endl;
// }
for (int i = 0; i < s.size(); i++) {
cout << char(convert[s[i] - 'a'] + 'a');
}
return 0;
}
コメント