安迪的第一个字典(Andy's First Dictionary,Uva 10815)
输入一个文本,找出所有不同的单词(连续的字母序列),按字典序从小到大输出,输入单词时不区分大小写
输入一个文本,找出所有不同的单词(连续的字母序列),按字典序从小到大输出,输入单词时不区分大小写
样例输入:注意请以“.”结束,不然结束不了
Adventures in Disneyland .
样例输出:
adventures
in
Disneyland
这道题很适合用set数组,set数组中没有重复元素,而且自动按字典排序,我参考了网上好多种解法,发现和样例输出不一致,只能通过结束符号来终止输入了
简单直接的做法
#include<bits/stdc++.h>
using namespace std;
set<string> dict;
int main()
{
string s, buf;
while (cin >> s)
{
if(s==".")
break;
for (int i = 0; i < s.length(); i++)
{
if (isalpha(s[i]))
s[i] = tolower(s[i]);
}
dict.insert(s);
}
for (set<string>::iterator it = dict.begin(); it != dict.end(); it++)
cout << *it << endl;
return 0;
}