题目:codeforces 1546B AquaMoon and Stolen String
题意:给你两组字符串,其中一组少一个且其他字符串会经过变化(对应位置不变),找出少的
那个;
题解:两组字符串总的字母数的差值就是少的字符串;先把第一组的所有字母存起来,然后在减去
第二组的字母,剩下的就是答案;(顺序在第一组的时候存);
代码:
#include<bits/stdc++.h>
using namespace std;
int cnt[100050][30];
int t;
int n, m;
int main()
{
cin >> t;
while (t--)
{
memset(cnt, 0, sizeof(cnt));
cin >> n >> m;
string s;
for (int i = 0; i < n; i++)
{
cin >> s;
for (int j = 0; j < m; j++)
cnt[j][s[j] - 'a']++;
}
for (int i = 0; i < n - 1; i++)
{
cin >> s;
for (int j = 0; j < m; j++)
{
cnt[j][s[j] - 'a']--;
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < 30; j++)
{
if (cnt[i][j])
{
s[i] = 'a' + j;
break;
}
}
}
cout << s << endl;
}
return 0;
}