#include<iostream>
#include<algorithm>
#include<cstdio>
#include<string>
#include<vector>
#include<string.h>
#include<map>
#include<cmath>
#include<set>
#define ll long long
#define maxn 1000001
#define ull unsigned long long
using namespace std;
template<class Elemtype>
void output(vector<Elemtype>& A)
{
typename std::vector<Elemtype>::iterator it;
for(it=A.begin();it!=A.end();it++)
if(it==A.begin())cout<<*it;
else cout<<","<<*it;
cout<<endl<<endl;
}
template<class ElemType>
void Purge_Sq(vector<ElemType> &L)
{
output(L);
typename std::vector<ElemType>::iterator it;
typename std::map<ElemType,int> mp;
for(it=L.begin();it!=L.end();it++)
if(mp[*it]==1){L.erase(it);it--;}
else mp[*it]=1;
output(L);
}
int main()
{
int Type;
cin>>Type;
getchar();
if(Type!=0&&Type!=1&&Type!=2&&Type!=3)
cout<<"err"<<endl;
else {
string s;
int m;
if(Type==0)
{
getline(cin,s);
vector<int> a;
int num=0;
for(int i=0;i<s.size();i++)
{
if(s[i]==' ')
{
a.push_back(num);
num=0;
}
else
num=num*10+s[i]-'0';
}
a.push_back(num);
Purge_Sq(a);
}
else if(Type==1)
{
getline(cin,s);
vector<double> b;
double num=0.0,sum=0.0;
int f=0,wei=0;
for(int i=0;i<s.size();i++)
{
if(s[i]==' ')
{
num=num/pow(10,wei);
b.push_back(num);
num=0.0;f=0;wei=0;
}
else if(s[i]=='.')
f=1;
else
{
num=num*10+s[i]-'0';
if(f)
wei++;
}
}
num=num/pow(10,wei);
b.push_back(num);
Purge_Sq(b);
}
if(Type==2)
{
getline(cin,s);
vector<char> c;
char ch;
for(int i=0;i<s.size();i++)
{
ch=s[i];
if(ch!=' ')
c.push_back(ch);
}
Purge_Sq(c);
}
if(Type==3)
{
getline(cin,s);
vector<string> d;
string k;
k.clear();
for(int i=0;i<s.size();i++)
{
if(s[i]==' ')
{
d.push_back(k);
k.clear();
}
else
k+=s[i];
}
d.push_back(k);
Purge_Sq(d);
}
}
return 0;
}
顺序表ADT模板简单应用算法设计:删除顺序表中的冗余元素
最新推荐文章于 2022-03-21 20:31:53 发布