andyli

题解 UVA10815 【Andy's First Dictionary】
本题没有太多的技巧,只是考验STL的用法,可以用set保存各个单词,还可以用输出迭代器(ostream_itera...
扫描右侧二维码阅读全文
16
2018/04

题解 UVA10815 【Andy's First Dictionary】

本题没有太多的技巧,只是考验STL的用法,可以用set保存各个单词,还可以用输出迭代器(ostream_iterator)来输出。注意:输入时应把所有非字母的字符变成空格,然后利用stringstream得到各个单词。提示一下,set会自动排序,所以不用sort进行排序。代码如下:

#include <algorithm> // 提供copy
#include <iostream>  // 提供cin, cout
#include <iterator>  // 提供ostream_iterator
#include <sstream>   // 提供stringstream
#include <string>    // 提供string
#include <cctype>    // 提供isalpha, tolower
#include <set>       // 提供set
using namespace std;

set<string> d;
int main()
{
    string s, tmp;
    while (cin >> s)
    {
        for (auto& x : s) // C++11
        {
            if (isalpha(x))
                x = tolower(x);
            else
                x = ' ';
        }
        stringstream ss(s);
        while (ss >> tmp)
            d.insert(tmp);
    }
    ostream_iterator<string> out(cout, "\n");
    copy(d.begin(), d.end(), out);
    return 0;
}
Last modification:June 25th, 2019 at 11:01 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment