注册 登录
编程论坛 C++教室

求助

根根本根 发布于 2018-08-31 12:55, 1624 次点击
10:单词排序

总时间限制: 1000ms 内存限制: 65536kB
描述
输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写)

输入
一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。
输出
按字典序输出这些单词,重复的单词只输出一次。
样例输入
She  wants  to go to Peking University to study  Chinese
样例输出
Chinese
Peking
She
University
go
study
to
wants

http://noi.



#include <bits/stdc++.h>
using namespace std;
int main() {
    string a[100],i=0;
    while(cin>>a[i]){
        i++;
    }
    sort(a,&a[a.size()]);
    for(int i=0; i<n; i++) {
        cout<<a[i]<<endl;
    }

    return 0;
}
3 回复
#2
rjsp2018-08-31 13:39
要求重复的单词只输出一次
认真一点儿吧

#3
根根本根2018-08-31 14:50
#include <bits/stdc++.h>
using namespace std;
int main() {
    string a[100],b;
    int i=0;
    while(cin>>b){
        bool t=1;
        for(int j=0;j<i;j++){
            if(a[j]==b){
                t=0;
                break;
            }
        }
        if(t){
            a[i]=b;
            i++;
        }
    }
    sort(a,&a[i]);
    for(int j=0; j<i; j++) {
        cout<<a[j]<<endl;
    }

    return 0;
}
这样呢
#4
rjsp2018-08-31 15:05
这道题没啥好说的,就是 输入、排序、去重、输出

程序代码:
#include <iostream>
#include <iterator>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;

int main( void )
{
    vector<string> buf;
    copy( istream_iterator<string>(cin), istream_iterator<string>(), back_inserter(buf) );
    sort( buf.begin(), buf.end() );
    buf.erase( unique(buf.begin(),buf.end()), buf.end() );
    copy( buf.begin(), buf.end(), ostream_iterator<string>(cout,"\n") );
}

1