POJ 1051 P,MTHBGWB(map模拟)
2015-04-05 15:51
253 查看
用map记录字母到摩斯码,摩斯码到字母,摩斯码的长度的映射。
代码:
代码:
// // main.cpp // 1051 P,MTHBGWB // // Created by Baoli1100 on 15/4/5. // Copyright (c) 2015年 Baoli1100. All rights reserved. // #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #include <map> map <char,string> h1; map <string,char> h2; map <char,int> len; string res; void init(){ h1['A']=".-"; h1['B']="-..."; h1['C']="-.-."; h1['D']="-.."; h1['E']="."; h1['F']="..-."; h1['G']="--."; h1['H']="...."; h1['I']=".."; h1['J']=".---"; h1['K']="-.-"; h1['L']=".-.."; h1['M']="--"; h1['N']="-."; h1['O']="---"; h1['P']=".--."; h1['Q']="--.-"; h1['R']=".-."; h1['S']="..."; h1['T']="-"; h1['U']="..-"; h1['V']="...-"; h1['W']=".--"; h1['X']="-..-"; h1['Y']="-.--"; h1['Z']="--.."; h1['_']="..--";h2["..--"]='_';len['_']=4; h1['.']="---.";h2["---."]='.';len['.']=4; h1[',']=".-.-";h2[".-.-"]=',';len[',']=4; h1['?']="----";h2["----"]='?';len['?']=4; for(int i=0;i<26;i++){ string k=h1[i+'A']; h2[k]=i+'A'; len[i+'A']=k.length(); } } int main(){ init(); int T; scanf("%d",&T); int kase=1; while(T--){ char s[105]; scanf("%s",s); res=""; int l=strlen(s); int num[105]; for(int i=0;i<l;i++){ res+=h1[s[i]]; num[i]=len[s[i]]; } printf("%d: ",kase++); int pos=0; for(int i=l-1;i>=0;i--){ string k=res.substr(pos,num[i]); printf("%c",h2[k]); pos+=num[i]; } printf("\n"); } return 0; }
相关文章推荐
- poj 1051 P,MTHBGWB
- POJ 1051 P,MTHBGWB
- POJ-1051-P,MTHBGWB
- POJ 1051 P,MTHBGWB 已被翻译
- poj 1051 P,MTHBGWB
- POJ 1051: P,MTHBGWB
- POJ 1051 P,MTHBGWB
- POJ 1051 P,MTHBGWB 简单字符串转换
- POJ 1051 P,MTHBGWB 笔记
- POJ 1051 P,MTHBGWB
- poj 1051 P,MTHBGWB (模拟题字符串 )
- 基础题训练(简单数学题、字符串)P,MTHBGWB POJ-1051
- 北大poj Q3 P,MTHBGWB
- 1051 P,MTHBGWB
- PKU_ACM_1051_ P,MTHBGWB
- PKU-1051 P,MTHBGWB (map的使用)
- 1051 P,MTHBGWB
- P,MTHBGWB - 1051
- poj 1051 P,MTHBGWB(字符串,较麻烦)
- zoj1068 P,MTHBGWB