UVA-10815

来源:互联网 发布:淘宝美瞳店铺哪个好 编辑:程序博客网 时间:2024/06/05 03:40

题目传送门☞ https://vjudge.net/problem/UVA-10815
我一开始的解法,很简单,过了样例,然后果断wa.

#include <iostream>#include <cstdio>#include <queue>#include <vector>#include <map>#include <set>#include <algorithm>#include <sstream>using namespace std;set<string> se;int main(){    string str, buf;    while ( cin >> str )    {        int len = str.length();        for (int i = 0; i <= len; i++)        {            if (isalpha(str[i]) == 0 ) str[i] = ' ';            str[i] = tolower(str[i]);        }        stringstream ss(str);        while (ss >> buf) se.insert(buf);    }    set<string>::iterator it;    for(it = se.begin(); it != se.end(); it++) {        cout << *it << endl;    }    return 0;}

//如果文本中有个是 hello*world,这将被分成两个单词,而不是一个单词;
//所以后来我发现,我第一种的错误是hello*world,将被看成一个单词,
//下面是参考了网上的博客,用sstream下的streamstring合理处理了string。

#include <iostream>#include <cstdio>#include <queue>#include <vector>#include <map>#include <set>#include <algorithm>#include <sstream>using namespace std;set<string> se;int main(){    string str, buf;    while ( cin >> str )    {        int len = str.length();        for (int i = 0; i <= len; i++)        {            if (isalpha(str[i]) == 0 ) str[i] = ' ';            str[i] = tolower(str[i]);        }        stringstream ss(str);        while (ss >> buf) se.insert(buf);    }    set<string>::iterator it;    for(it = se.begin(); it != se.end(); it++) {        cout << *it << endl;    }    return 0;}
0 0
原创粉丝点击