HDOJ.1075 What Are You Talking About(map)

来源:互联网 发布:美丽说聊天软件 编辑:程序博客网 时间:2024/05/29 10:33

What Are You Talking About

点我跳转到题面
点我一起学习STL-MAP

题意分析

首先第一组START-END给出翻译的字典,第二组START-END给出一句话,查找里面出现的单词,若字典中有则输出翻译后的内容,没有则原封不动输出。

代码总览

/*    Title:HDOJ.1075    Author:pengwill    Date:2016-11-21*/#include <iostream>#include <string>#include <string.h>#include <map>#include <stdio.h>using namespace std;string s;char s1[100000],s2[100000];char str[100000];int main(){    freopen("in.txt","r",stdin);    typedef map<string,string> mmp;    mmp mp;    mmp::iterator iter;    int i;    char ch;    for(i = 0;i<2;i++){        if(i==0){            cin>>s1;            if(strcmp(s1,"START") == 0){                while(cin>>s1){                    if(strcmp(s1,"END")==0){                        break;                    }else{                        cin>>s2;                        mp[s2] = s1;                    }                }            }        }else if(i == 1){            cin>>s1;            if(strcmp(s1,"START") == 0){                    while(gets(str)){                        int len = strlen(str),i,judge =2;                        if(strcmp(str,"END")==0){                            break;                        }                        for(i = 0;i<len;i++){                            while(str[i]>='a'&&str[i]<='z'){                                s+=str[i];                                i++;                                judge = 1;                            }                            if(judge==1){                                if(mp.count(s)){                                    iter = mp.find(s);                                    cout<<iter->second;                                }else{                                    if(s.compare("END") == 0){                                        break;                                    }else{                                        cout<<s;                                    }                                }                                judge = 0;                                s.clear();                            }                            cout<<str[i];                        }                        if(judge == 1||judge ==0){                           printf("\n");                        }                    }            }        }    }    return 0;    fclose(stdin);}
0 0
原创粉丝点击