题解
2024-05-28 19:34:21
发布于:上海
4阅读
0回复
0点赞
由题意知,这里要添加、删除、遍历、判空等操作,如果单纯用数组有可能需要避免导致RE的问题,所以我们可以去换成vector做这道题。
代码:
#include<iostream>
#include<vector>
using namespace std;
vector<string>v;
int main(){
    int n;
    cin>>n;
    while(n--){
        string s;
        cin>>s;
        if(s=="ADD"){
            string t;
            cin>>t;
            bool f=0;
            for(int i=0;i<v.size();i++){
                if(v[i]==t){
                    cout<<"already exists"<<endl;
                    f=1;
                    break;
                }
            }
            if(!f){
                cout<<"success"<<endl;
                v.push_back(t);
            }
        }
        else if(s=="DEL"){
            string t;
            cin>>t;
            bool f=0;
            for(auto it=v.begin();it!=v.end();it++){
                if(*it==t){
                    f=1;
                    cout<<"success"<<endl;
                    v.erase(it);
                    break;
                }
            }
            if(!f){
                cout<<"non-existent"<<endl;
            }
        }
        else if(s=="VIEW"){
            if(v.empty())cout<<"empty"<<endl;
            else for(int i=0;i<v.size();i++)cout<<i+1<<". "<<v[i]<<endl;
        }
        else if(s=="UNLOCK"){
            string t;
            cin>>t;
            bool f=0;
            for(int i=0;i<v.size();i++){
                if(v[i]==t){
                    f=1;
                    cout<<"YES"<<endl;
                    break;
                }
            }
            if(!f)cout<<"NO"<<endl;
        }
    }
    return 0;
}
这里空空如也







有帮助,赞一个