命名那个数字 Name That Number
很明显的暴力模拟。
枚举字典里的名字,把他们换成数字比较。
#include<bits/stdc++.h>
using namespace std;
struct a{
string old,new1;
}q[5100];
int main()
{
string n;
cin>>n;
for(int i=1;i<=4617;i++)
cin>>q[i].old;
for(int i=1;i<4617;i++){
q[i].new1="";
for(int j=0;j<q[i].old.size();j++){
if(q[i].old[j]=='A'||q[i].old[j]=='B'||q[i].old[j]=='C')
q[i].new1+='2';
if(q[i].old[j]=='D'||q[i].old[j]=='E'||q[i].old[j]=='F')
q[i].new1+='3';
if(q[i].old[j]=='H'||q[i].old[j]=='G'||q[i].old[j]=='I')
q[i].new1+='4';
if(q[i].old[j]=='J'||q[i].old[j]=='K'||q[i].old[j]=='L')
q[i].new1+='5';
if(q[i].old[j]=='M'||q[i].old[j]=='N'||q[i].old[j]=='O')
q[i].new1+='6';
if(q[i].old[j]=='P'||q[i].old[j]=='S'||q[i].old[j]=='R')
q[i].new1+='7';
if(q[i].old[j]=='T'||q[i].old[j]=='V'||q[i].old[j]=='U')
q[i].new1+='8';
if(q[i].old[j]=='X'||q[i].old[j]=='W'||q[i].old[j]=='Y')
q[i].new1+='9';
}
}
bool p=true;
for(int i=1;i<=4617;i++)
if(q[i].new1==n){
cout<<q[i].old<<endl;
p=false;
}
if(p)
cout<<"NONE";
return 0;
}