UVA

来源:互联网 发布:js控制div旋转 编辑:程序博客网 时间:2024/05/29 17:40

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1756
题意:输入一篇文章,把每个单词记录一下,大写全转化为小写,相同只记录一个,然后排序输出。
方法:需要注意的就是当字母前出现符号和字母后出现符号需要处理一下。

#include<stdio.h>#include<string>#include<string.h>#include<iostream>#include<map>#include<algorithm>using namespace std;struct node{    string a;} num[5000005];int cmp(node x,node y){    return x.a<y.a;}map<string,int>m;int main(){    string s;    int lenn=0;    m.clear();    while(cin>>s)    {        int flag=0;        string ss="";        int len=s.size();        for(int i=0; i<len; i++)        {            if(s[i]>='A'&&s[i]<='Z')                s[i]+=32,ss+=s[i],flag=1;            else if(s[i]>='a'&&s[i]<='z')                ss+=s[i],flag=1;            else            {                if(m[ss]==0&&flag==1&&ss!="")                    num[lenn++].a=ss,flag=0;                m[ss]++,ss="";            }        }        if(m[ss]==0&&flag==1&&ss!="")            num[lenn++].a=ss;        m[ss]++;    }    sort(num,num+lenn,cmp);    for(int i=0; i<lenn; i++)        cout<<num[i].a<<endl;    return 0;}
原创粉丝点击