CF928A 【Login Verification】

一道小水题 ,注意一下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;
} 
发布了8 篇原创文章 · 获赞 8 · 访问量 590

猜你喜欢

转载自blog.csdn.net/pikabi/article/details/105315409