poj 1051 P,MTHBGWB

#include<iostream>
#include
<map>
#include
<string>
using namespace std;

map
<char,string>col;
map
<char,string>::iterator ite;
void f(string str)
{
string ss,temp;
int i,top=0,len_pre=0,len[101];
for(i=0;i<str.size();i++)
{
ite
=col.find(str[i]);
ss.append(ite
->second);
len[
++top]=ite->second.length();
}
for(i=top;i>0;i--)
{
temp.assign(ss.begin()
+len_pre,ss.begin()+len_pre+len[i]);
len_pre
+=len[i];
for(ite=col.begin();;ite++)
if(ite->second==temp)
break;
printf(
"%c",ite->first);
}
printf(
"\n");
}
int main()
{
col.insert(pair
<char,string>('A',".-"));
col.insert(pair
<char,string>('B',"-..."));
col.insert(pair
<char,string>('C',"-.-."));
col.insert(pair
<char,string>('D',"-.."));
col.insert(pair
<char,string>('E',"."));
col.insert(pair
<char,string>('F',"..-."));
col.insert(pair
<char,string>('G',"--."));
col.insert(pair
<char,string>('H',"...."));
col.insert(pair
<char,string>('I',".."));
col.insert(pair
<char,string>('J',".---"));
col.insert(pair
<char,string>('K',"-.-"));
col.insert(pair
<char,string>('L',".-.."));
col.insert(pair
<char,string>('M',"--"));
col.insert(pair
<char,string>('N',"-."));
col.insert(pair
<char,string>('O',"---"));
col.insert(pair
<char,string>('P',".--."));
col.insert(pair
<char,string>('Q',"--.-"));
col.insert(pair
<char,string>('R',".-."));
col.insert(pair
<char,string>('S',"..."));
col.insert(pair
<char,string>('T',"-"));
col.insert(pair
<char,string>('U',"..-"));
col.insert(pair
<char,string>('V',"...-"));
col.insert(pair
<char,string>('W',".--"));
col.insert(pair
<char,string>('X',"-..-"));
col.insert(pair
<char,string>('Y',"-.--"));
col.insert(pair
<char,string>('Z',"--.."));
col.insert(pair
<char,string>('_',"..--"));
col.insert(pair
<char,string>('.',"---."));
col.insert(pair
<char,string>(',',".-.-"));
col.insert(pair
<char,string>('?',"----"));

string str;
int t;
cin
>>t;
for(int i=1;i<=t;i++)
{
cin
>>str;
printf(
"%d: ",i);
f(str);
}
return 0;
}

  

posted on 2011-07-17 23:40  sysu_mjc  阅读(184)  评论(0编辑  收藏  举报

导航