0
点赞
收藏
分享

微信扫一扫

DHU数据结构-顺序表- ADT应用-有序表的提纯(去重)

Go_Viola 2022-03-11 阅读 38

目录

1.题目

2.题解

3.代码实现


1.题目


2.题解

  • 挖坑

3.代码实现

#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <cstring>

using namespace std;
int n;
string s;

template<class T>
void print(vector<T> &A)
{
    int i;
    for(i=0; i<A.size()-1; i++)
    {
        cout<<A[i]<<",";
    }
    cout<<A[i]<<endl;
}
template<class T>
void change(vector<T> &A)
{
    print(A);
    cout<<endl;
    for(int i=0;i<A.size();i++)
    {
        if(i&&(A[i]==A[i-1]))
        {
            A.erase(A.begin()+i);
            i--;
        }
    }
    print(A);
}
int main()
{
    cin>>n;
    getchar();
    getline(cin,s);

    if(n==0)
    {
        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);
        change(a);
    }
    else if(n==1)
    {
        vector<double> b;
        double num=0;
        int flag=0,t=0;
        for(int i=0; i<s.size(); i++)
        {
            if(s[i]==' ')
            {
                num=num/pow(10,t);
                b.push_back(num);
                t=0,num=0,flag=0;
            }
            else if(s[i]=='.')
            {
                flag=1;
            }
            else
            {
                num=num*10+s[i]-'0';
                if(flag==1)
                    t++;
            }
        }
        num=num/pow(10,t);
        b.push_back(num);
        change(b);
    }
    else if(n==2)
    {
        vector<char> c;
        for(int i=0; i<s.size(); i++)
        {
            if(s[i]!=' ')
                c.push_back(s[i]);
        }
        change(c);
    }
    else if(n==3)
    {
        vector<string> d;
        string str;
        str.clear();
        for(int i=0; i<s.size(); i++)
        {
            if(s[i]==' ')
            {
                d.push_back(str);
                str.clear();
            }
            else
                str+=s[i];
        }
        d.push_back(str);
        change(d);
    }
    else
        cout<<"err"<<endl;
    return 0;
}
举报

相关推荐

0 条评论