/*
思路:简单模拟。
10个字母中有5个是有唯一标识字母的:ZERO(Z)、TWO(W)、FOUR(U)、SIX(X)、EIGHT(G)
先把这五个筛选下
然后剩下中有三个字母是有唯一标识字母的:ONE(O)、THREE(R)、FIVE(F)
然后SEVEN、NINE。
*/
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstdlib>
#include <stack>
#include <map>
#include <set>
#include <vector>
#include <queue>
using namespace std;
int num[]={2,3,4,5,6,7,8,9,0,1};
int cnt[30];
int res[10010];
char s[10010];
int main(void)
{
int T;
scanf("%d",&T);
while(T--)
{
int n=0;
memset(res,0,sizeof res);
memset(cnt,0,sizeof cnt);
scanf("%s",s);
int len=strlen(s);
for(int i=0;i<len;i++)
cnt[s[i]-'A']++;
while(cnt['Z'-'A']>0&&cnt['E'-'A']>0&&cnt['R'-'A']>0&&cnt['O'-'A']>0)
{
cnt['Z'-'A']--;cnt['E'-'A']--;cnt['R'-'A']--;cnt['O'-'A']--;
res[n++]=num[0];
}
while(cnt['T'-'A']>0&&cnt['W'-'A']>0&&cnt['O'-'A']>0)
{
cnt['T'-'A']--;cnt['W'-'A']--;cnt['O'-'A']--;
res[n++]=num[2];
}
while(cnt['F'-'A']>0&&cnt['O'-'A']>0&&cnt['U'-'A']>0&&cnt['R'-'A']>0)
{
cnt['F'-'A']--;cnt['O'-'A']--;cnt['U'-'A']--;cnt['R'-'A']--;
res[n++]=num[4];
}
while(cnt['S'-'A']>0&&cnt['I'-'A']>0&&cnt['X'-'A']>0)
{
cnt['S'-'A']--;cnt['I'-'A']--;cnt['X'-'A']--;
res[n++]=num[6];
}
while(cnt['E'-'A']>0&&cnt['I'-'A']>0&&cnt['G'-'A']>0&&cnt['H'-'A']>0&&cnt['T'-'A']>0)
{
cnt['E'-'A']--;cnt['I'-'A']--;cnt['G'-'A']--;cnt['H'-'A']--;cnt['T'-'A']--;
res[n++]=num[8];
}
while(cnt['O'-'A']>0&&cnt['N'-'A']>0&&cnt['E'-'A']>0)
{
cnt['O'-'A']--;cnt['N'-'A']--;cnt['E'-'A']--;
res[n++]=num[1];
}
while(cnt['F'-'A']>0&&cnt['I'-'A']>0&&cnt['V'-'A']>0&&cnt['E'-'A']>0)
{
cnt['F'-'A']--;cnt['I'-'A']--;cnt['V'-'A']--;cnt['E'-'A']--;
res[n++]=num[5];
}
while(cnt['T'-'A']>0&&cnt['H'-'A']>0&&cnt['R'-'A']>0&&cnt['E'-'A']>1)
{
cnt['T'-'A']--;cnt['H'-'A']--;cnt['R'-'A']--;cnt['E'-'A']--;cnt['E'-'A']--;
res[n++]=num[3];
}
while(cnt['S'-'A']>0&&cnt['E'-'A']>1&&cnt['V'-'A']>0&&cnt['N'-'A']>0)
{
cnt['S'-'A']--;cnt['N'-'A']--;cnt['V'-'A']--;cnt['E'-'A']-=2;
res[n++]=num[7];
}
while(cnt['N'-'A']>1&&cnt['I'-'A']>0&&cnt['E'-'A']>0)
{
cnt['N'-'A']-=2;cnt['I'-'A']--;cnt['E'-'A']--;
res[n++]=num[9];
}
sort(res,res+n);
for(int i=0;i<n;i++)
printf("%d",res[i]);
puts("");
}
return 0;
}
思路:简单模拟。
10个字母中有5个是有唯一标识字母的:ZERO(Z)、TWO(W)、FOUR(U)、SIX(X)、EIGHT(G)
先把这五个筛选下
然后剩下中有三个字母是有唯一标识字母的:ONE(O)、THREE(R)、FIVE(F)
然后SEVEN、NINE。
*/
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstdlib>
#include <stack>
#include <map>
#include <set>
#include <vector>
#include <queue>
using namespace std;
int num[]={2,3,4,5,6,7,8,9,0,1};
int cnt[30];
int res[10010];
char s[10010];
int main(void)
{
int T;
scanf("%d",&T);
while(T--)
{
int n=0;
memset(res,0,sizeof res);
memset(cnt,0,sizeof cnt);
scanf("%s",s);
int len=strlen(s);
for(int i=0;i<len;i++)
cnt[s[i]-'A']++;
while(cnt['Z'-'A']>0&&cnt['E'-'A']>0&&cnt['R'-'A']>0&&cnt['O'-'A']>0)
{
cnt['Z'-'A']--;cnt['E'-'A']--;cnt['R'-'A']--;cnt['O'-'A']--;
res[n++]=num[0];
}
while(cnt['T'-'A']>0&&cnt['W'-'A']>0&&cnt['O'-'A']>0)
{
cnt['T'-'A']--;cnt['W'-'A']--;cnt['O'-'A']--;
res[n++]=num[2];
}
while(cnt['F'-'A']>0&&cnt['O'-'A']>0&&cnt['U'-'A']>0&&cnt['R'-'A']>0)
{
cnt['F'-'A']--;cnt['O'-'A']--;cnt['U'-'A']--;cnt['R'-'A']--;
res[n++]=num[4];
}
while(cnt['S'-'A']>0&&cnt['I'-'A']>0&&cnt['X'-'A']>0)
{
cnt['S'-'A']--;cnt['I'-'A']--;cnt['X'-'A']--;
res[n++]=num[6];
}
while(cnt['E'-'A']>0&&cnt['I'-'A']>0&&cnt['G'-'A']>0&&cnt['H'-'A']>0&&cnt['T'-'A']>0)
{
cnt['E'-'A']--;cnt['I'-'A']--;cnt['G'-'A']--;cnt['H'-'A']--;cnt['T'-'A']--;
res[n++]=num[8];
}
while(cnt['O'-'A']>0&&cnt['N'-'A']>0&&cnt['E'-'A']>0)
{
cnt['O'-'A']--;cnt['N'-'A']--;cnt['E'-'A']--;
res[n++]=num[1];
}
while(cnt['F'-'A']>0&&cnt['I'-'A']>0&&cnt['V'-'A']>0&&cnt['E'-'A']>0)
{
cnt['F'-'A']--;cnt['I'-'A']--;cnt['V'-'A']--;cnt['E'-'A']--;
res[n++]=num[5];
}
while(cnt['T'-'A']>0&&cnt['H'-'A']>0&&cnt['R'-'A']>0&&cnt['E'-'A']>1)
{
cnt['T'-'A']--;cnt['H'-'A']--;cnt['R'-'A']--;cnt['E'-'A']--;cnt['E'-'A']--;
res[n++]=num[3];
}
while(cnt['S'-'A']>0&&cnt['E'-'A']>1&&cnt['V'-'A']>0&&cnt['N'-'A']>0)
{
cnt['S'-'A']--;cnt['N'-'A']--;cnt['V'-'A']--;cnt['E'-'A']-=2;
res[n++]=num[7];
}
while(cnt['N'-'A']>1&&cnt['I'-'A']>0&&cnt['E'-'A']>0)
{
cnt['N'-'A']-=2;cnt['I'-'A']--;cnt['E'-'A']--;
res[n++]=num[9];
}
sort(res,res+n);
for(int i=0;i<n;i++)
printf("%d",res[i]);
puts("");
}
return 0;
}