题解

难度:中等

知识点:map、查找、字符分割

解题剖析:涉及到数据库,主要就是考察添加、删除和查找的知识。因为添加\删除\查找都对应了不同的字符串首字母,所以只要在分割字符串的过程后就可以对应出相应的处理。因为添加和删除都是相同的输出,所以主要需要考虑的是怎么查找。这里可以直接使用一个map<string,bool>来对应出这个ip是否存在,以便在查找时做出不同的输出。

解题

#include <bits/stdc++.h>
using namespace std;
int main(){
    string s;
    //使用一个map来判断查找的ip是否存在
    map<string,bool> m;
    while(cin>>s){
        if(s=="end")
            break;
        string ip = s.substr(2);
        char op = s[0];
        if(op=='i'){
            m[ip] = true;
            cout<<"ok"<<endl;
        }
        else if(op=='d'){
            m[ip] = false;
            cout<<"ok"<<endl;
        }
        else{
            //判断这个ip是否存在,存在则输出true,不存在则输出false
            if(m[ip]==true)
                cout<<"true"<<endl;
            else
                cout<<"false"<<endl;
        }
    }
    return 0;
}