2020年8月16日 星期日

a870: 10. List Maker

解題心得:
vector find: find(vec.begin(),vec.end(),x);
vector insert: vec.insert(it,x); // or vec.insert(vec.begin()+n,x);
vector erase: vec.erase(it) // or vec.erase(vec.begin()+n);

程式碼:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    string command,x,n;
    vector<string> l;
    while(cin>>command)
    {
        if(command=="SHOW") break;
        if(command=="ADD")
        {
            cin>>x;
            l.push_back(x);
        }
        else if(command=="INSERT")
        {
            cin>>x>>n;
            vector<string>::iterator it=find(l.begin(),l.end(),n);
            l.insert(it,x);
        }
        else if(command=="REMOVE")
        {
            cin>>x;
            for(int i=0;i<l.size();i++)
            {
                if(l[i]==x)
                {
                    l.erase(l.begin()+i);
                    break;
                }
            }
        }
    }
    for(int i=0;i<l.size();i++)
        cout<<l[i]<<" ";
    return 0;
}

沒有留言:

張貼留言