首页 > 代码库 > 华为机试—删除连续出现大于等于3的数字

华为机试—删除连续出现大于等于3的数字

输入一组数字(最多15个),去掉连续次数大于等于三的数字,如果去掉后仍有连续次数大于等于三的,继续进行同样的处理,直到结果中没有出现连续次数大于等于三的数字为止。
如果最终全部消除完了 输出“none”


输入:1 1 1 1 2 2 2 1 3 3 3 3 1 1 1

输出:none 

#include<iostream>
#include<map>
#include<vector>
using namespace std;
int main(int argc, char *argv[])
{
    vector<int>vec;
    vector<int>data;
    map<int,int>m;
    int a;
    while(cin>>a)
    {
        m[a]++;
        vec.push_back(a);
    }
    for(vector<int>::iterator iter=vec.begin();iter!=vec.end();++iter)
    {
        if(m[*iter]<3)
            data.push_back(*iter);
    }
    if(data.empty()==true)
        cout<<"none"<<endl;
    else{
        cout<<*data.begin();
        for(vector<int>::iterator iter=data.begin()+1;iter!=data.end();++iter)
        {
            cout<<" "<<*iter;
        }
        cout<<"\n";
    }

    return 0;
}


华为机试—删除连续出现大于等于3的数字