当前位置: 代码迷 >> 综合 >> UVa 10815
  详细解决方案

UVa 10815

热度:11   发布时间:2023-12-06 08:53:54.0

题目:点击打开链接


思路:一个个单词的读取,去掉标点符号并把所有的字母都改成小写后塞入set。


代码:

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<set>
#include<string>
using namespace std;
set <string> a;
int main() {
//	freopen("10815.in","r",stdin);string b;while(cin>>b){if(b.size()==1){if(('a'<=b[0]&&b[0]<='z')||('A'<=b[0]&&b[0]<='Z')){if('A'<=b[0]&&b[0]<='Z'){b[0]=b[0]-'A'+'a';}a.insert(b);}continue;}b+="@";int x=0;for(int i=0;i<b.size();i++){if(!(('a'<=b[i]&&b[i]<='z')||('A'<=b[i]&&b[i]<='Z'))){if(x<i){string y=b.substr(x,i-x);a.insert(y);}x=i+1;}else if('A'<=b[i]&&b[i]<='Z'){b[i]=b[i]-'A'+'a';}}}for(set<string>::iterator it=a.begin();it!=a.end();it++){cout<<*it<<endl;}return 0;
}