您的位置:首页 > 其它

hdu1048map解法和一般解法

2013-08-12 11:45 274 查看
 

一般解法

#include<iostream>

#include<stdlib.h>

#include<string>

#include<algorithm>

using namespace std;

int main()

{

     string s,t;

     char str[210];

     while(cin>>s&&s!="ENDOFINPUT")

     {

           getchar();

           gets(str);

           cin>>t;

           for(int i=0;i<strlen(str);i++)

           {

                  if(str[i]>=65&&str[i]<=90)  

                  str[i]=(str[i]+21-'A')%26+'A';

           }   

           cout<<str<<endl;

     }

     system("pause");

     return 0;

}

     


 

map解法:

 

 

 

#include<stdlib.h>

#include<string>

#include<algorithm>

#include<iostream>

#include<map>

using namespace std;

int main()

{

      char b[]={'V','W','X','Y','Z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U'};

      string s,t;

      char a[210];

      map<char,char>charmap ;

      while(cin>>s&&s!="ENDOFINPUT") 

      {

            getchar();

            gets(a);//不能用cin和scanf;

            cin>>t;

            for(int i=0;i<26;i++)

            {

                  charmap['A'+i]=b[i];

            }

            for(int i=0;i<strlen(a);i++)

            {

                  if(!isalpha(a[i]))

                  cout<<a[i];

                  else

                  cout<<charmap[a[i]];

            }

            cout<<endl;

      }

      system("pause");

      return 0;

}                                   

 

 

      

                                                    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  水题