質問S:解読メッセージ
制限時間:1秒メモリ制限:32メガバイト
提出:152は解決:66
タイトル説明
次のようにボブは、方法を解読文字は、上記のすべての記号と数字が、あるいくつかの奇妙なメッセージを受信しました:
- 1となる'A' 、 2なり'B'、...、26がされているに変更' Z' 。
- 「#」空間に。
- 無視「 - 」、元の文字を「 - 」だけデジタルを分割します。
今、あなたは、このメッセージを解読ヘルプ暁明プログラミングをしてください。
エントリー
C整数第行為入力は、テスト・データ・セットの数を表します。
入力文字列の次のC線は解読ストリングのみ含まことが数字、 「 - 」及び「#」が、長さが超えていない100。
輸出
入力の各セットのために、テキスト復号出力。
サンプル入力 のコピー
4 9#23-9-12-12#19-20-5-1-12#1~20#12-5-1-19-20#15-14-5#10-5-23-5-12 1-14-4#12-5-1-22-5#20-8-5#13-21-19-5-21-13#9-14#20#13-9-14-21-20- 5-19 1-6-20-5-18#20-8-5#15-16-5-14-9-14-7#15-6#20-8-5#5-24-8-9 -2-9-20-9-15-14 7-15-15-4#12-21-3-11
サンプル出力 のコピー
私は、少なくとも一つのJEWEL盗む とLEAVE THE博物館でT分 THE EXHIBITION OF開いた後 GOOD LUCK
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
int T;
string s;
scanf("%d",&T);
getchar();
while(T--){
cin>>s;
for(int i = 0;i < s.size();i++){
if(s[i]=='#'){
cout<<" ";
}
if(s[i]=='-'){
continue;
}
if(s[i]>='0'&&s[i]<='9'){
int num=0;
if(s[i+1]>='0'&&s[i+1]<='9'){
num=10*(s[i]-'0')+(s[i+1]-'0');
i++;
}else{
num=s[i]-'0';
}
char ch='A'+num-1;
cout<<ch;
}
}
cout<<endl;
}
}
コード