ickchen2

1951 字符串处理 很囧的一道题

要注意处理标点前的空格...不然就狂PE了...
#include<stdio.h>
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<algorithm>
#define M 1000
using namespace std;
map<char,int>m;
map<char,int>::iterator it;
char str[M];
string ans;
int main()
{
   // freopen("1951.txt","r",stdin);
   // freopen("1951o.txt","w",stdout);
    m['A']=1;
    m['E']=1;
    m['I']=1;
    m['O']=1;
    m['U']=1;
    gets(str);
    int n=strlen(str);
    for(int i=0;i<n;i++)
    {

        if(str[i]<='Z'&&str[i]>='A')
        {
            if(m.find(str[i])==m.end())
            {
                ans+=str[i];
                m[str[i]]=1;
            }
        }
        else
        {
            if(str[i]==' ')
            {
                if(ans[ans.size()-1]!=' ')
                ans+=str[i];
            }
            else
            {
                if(ans[ans.size()-1]==' ')ans[ans.size()-1]=str[i];
                else
                ans+=str[i];
            }
        }
    }
    n=ans.size()-1;
    while(ans[n]==' ')n--;
    int i=0;
    while(ans[i]==' ')i++;
    for(;i<=n;i++)printf("%c",ans[i]);
    //cout<<s<<endl;
}

posted on 2008-09-04 13:06 神之子 阅读(114) 评论(0)  编辑 收藏 引用 所属分类: ACM题解


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜