What Are You Talking About HDU1075

一开始我也想用map  但是处理不好其他字符。。

看了题解   多多学习! 很巧妙  就是粗暴的一个字符一个字符的来 分为小写字母和非小写字母两个部分  一但单词结束的时候就开始判断。

#include<bits/stdc++.h>
using namespace std;

int main()
{
    string a,b;
    map<string ,string >ma;
    cin>>a;
    while(cin>>a&&a!="END")
    {
        cin>>b;ma[b]=a;

    }
    cin>>a;
    char s[3500];getchar();
    while(gets(s))
    {
        if(!strcmp(s,"END"))break;

        int n=strlen(s);
        a="";
        for(int i=0;i<n;i++)
        {
         if(islower(s[i]))a+=s[i];
         else
         {
             if(ma.find(a)!=ma.end())
                cout<<ma[a];

             else
                 cout<<a;

             cout<<s[i];
             a="";


         }


        }
        cout<<endl;


    }




}
View Code

猜你喜欢

转载自www.cnblogs.com/bxd123/p/10344411.html
今日推荐