0088-The Code A Doctor Loved
http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0088&lang=jp
VBStringsの作成のほうが大変だった。
考え方
書かれている通りに置換する。
実装(C++/インクルード省略/VBStrings省略)
const int rmax=32; string rdata[rmax][2]={{" ","101"},{"'","000000"},{",","000011"},{"-","10010001"},{".","010001"},{"?","000001"},{"A","100101"},{"B","10011010"},{"C","0101"},{"D","0001"},{"E","110"},{"F","01001"},{"G","10011011"},{"H","010000"},{"I","0111"},{"J","10011000"},{"K","0110"},{"L","00100"},{"M","10011001"},{"N","10011110"},{"O","00101"},{"P","111"},{"Q","10011111"},{"R","1000"},{"S","00110"},{"T","00111"},{"U","10011100"},{"V","10011101"},{"W","000010"},{"X","10010010"},{"Y","10010011"},{"Z","10010000"}}; string rdata2[rmax][2]={{"00000","A"},{"00001","B"},{"00010","C"},{"00011","D"},{"00100","E"},{"00101","F"},{"00110","G"},{"00111","H"},{"01000","I"},{"01001","J"},{"01010","K"},{"01011","L"},{"01100","M"},{"01101","N"},{"01110","O"},{"01111","P"},{"10000","Q"},{"10001","R"},{"10010","S"},{"10011","T"},{"10100","U"},{"10101","V"},{"10110","W"},{"10111","X"},{"11000","Y"},{"11001","Z"},{"11010"," "},{"11011","."},{"11100",","},{"11101","-"},{"11110","'"},{"11111","?"}}; int main(){ string in; string res; while(cin.eof()==false){ getline(cin,in); if(cin.eof()==true) return 0; for(int i=0;i<rmax;i++){ in=Replace(in,rdata[i][0],rdata[i][1]); } in+=String(5-Len(in)%5==5?0:5-Len(in)%5,"0"); res=""; for(int i=1;i<=Len(in);i+=5){ for(int j=0;j<rmax;j++){ if(rdata2[j][0]==Mid(in,i,5)){ res+=rdata2[j][1]; } } } cout << res << endl; } return 0; }