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; } }