ZZNUOJ 2022 摩斯密码

map打表存一下对应的密码   不会map感觉不好弄这题

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<time.h>
#include<iostream>
#include<ctype.h>
#include<map>
#include<set>
#include<string>
#include<vector>
#include<algorithm>
#include<stdlib.h>
#include<queue>
#include<stack>
using namespace std;

map<string,char>M;
void init()
{
    M[".-"]='a';M["-..."]='b';M["-.-."]='c';M["-.."]='d';
    M["."]='e';M["..-."]='f';M["--."]='g';M["...."]='h';
    M[".."]='i';M[".---"]='j';M["-.-"]='k';M[".-.."]='l';
    M["--"]='m';M["-."]='n';M["---"]='o';M[".--."]='p';
    M["--.-"]='q';M[".-."]='r';M["..."]='s';M["-"]='t';
    M["..-"]='u';M["...-"]='v';M[".--"]='w';M["-..-"]='x';
    M["-.--"]='y';M["--.."]='z';
    M["-----"]='0';M[".----"]='1';M["..---"]='2';M["...--"]='3';
    M["....-"]='4';M["....."]='5';M["-...."]='6';M["--..."]='7';
    M["---.."]='8';M["----."]='9';
}
char str[10001];
int main()
{
 long long n,m,i,j,k;
 int t;
 init();
 scanf("%d",&t);
 getchar();
 while(t--)
 {
     string ans="";
     string tem="";
     gets(str);
     long long l=strlen(str);
     for(i=0;i<l;i++)
     {
         if(str[i]==' ')
         {
             ans+=M[tem];
             tem="";
             if(str[i+1]==' ')
             {
                 ans+=' ';
                 i++;
             }
         }
         else
            tem+=str[i];
     }
     ans+=M[tem];
     for(i=0;i<ans.size();i++)
     {
         if(isalpha(ans[i]))
            ans[i]=tolower(ans[i]);

     }
    cout<<ans<<endl;
 }

}

猜你喜欢

转载自www.cnblogs.com/nr1999/p/9030972.html