样例输入 Copy
4
ZAGREB
SISAK
ZADAR
ZABOK
ZA
样例输出 Copy
****B*D*
*G******
********
********
提示
【样例解释】
输入 ZA 以后,下一个字符可能是 G(终点站有可能是 ZAGREB),或 D(终点 站有可能是 ZADAR),或 B(终点站有可能是 ZABOK)。
题意:
解题思路:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<string>
#include<cstring>
using namespace std;
const int maxn(55);
string tmp[maxn];
string a[4]={
"***ABCDE",
"FGHIJKLM",
"NOPQRSTU",
"VWXYZ***",
};
int vis[4][9]={0}; //标记
string temp;
inline void work(char c){
for(int i=0;i<4;++i){
for(int j=0;j<8;++j){
if(a[i][j]==c){
vis[i][j]=1; //标记
break;
}
}
}
}
inline void print(void){
for(int i=0;i<4;++i){
for(int j=0;j<8;++j){
if(vis[i][j]==true) cout<<a[i][j]; //如果被标记就输出
else cout<<"*"; //否则输出*
}
cout<<endl; //换行
}
}
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;++i){
cin>>tmp[i];
}
cin>>temp;
int len=temp.length();
for(int i=0;i<n;++i){
string t=tmp[i].substr(0,len); //截取字符串
if(t!=temp) continue; //如果不相等的话就不进行判断
else {
char c=tmp[i][len];
work(c);
}
}
print();
return 0;
}