一道小水题 ,注意一下string可以直接比大小的!!模拟一下再比较就好了不需要map
一些细节见代码QAQ
#include <iostream>
#include <cstdio>
#include <cctype> //toupper 和 islower的头文件
using namespace std;
string s, ss;
int n, fl;
int main(){
getline(cin, s);
scanf("%d\n",&n);
for(int i = 0; i < s.length() ; i++)//模拟
if(s[i] == '1' || s[i] == 'l'|| s[i] == 'i' || s[i] == 'I') s[i] = 'L';//建议弄个小函数套一下否则手贱多打一个s容易WA(比如我)
else if(islower(s[i])) s[i] = toupper(s[i]);//islower判断大小写, toupper小写变大写
else if(s[i] == '0') s[i] = 'O';
for(int i = 1;i <= n; i++){
getline(cin,ss);
for(int j = 0; j < ss.length(); j++)//同上
if(ss[j] == '1' || ss[j] == 'l' || ss[j] == 'i' || ss[j] == 'I') ss[j] = 'L';
else if(islower(ss[j])) ss[j] = toupper(ss[j]);
else if(ss[j] == '0') ss[j] = 'O';
if(ss == s) fl = 1;//直接比较
}
if(fl) printf("No\n");
else printf("Yes\n");
return 0;
}