题目名称:选项编码
题目链接:选项编码
描述
大多数考试中单选题目的选项都是ABCD四项。小Hi为了更高效地传递选项信息,将ABCD按如下方式编码:
A: 101, B:11, C:0, D:100
例如对于ABCD,编码后的01串是101110100。
现在给定一个编码后的01串,请你译出原本的选项串是什么。
输入
一个01串,长度不超过100000。
输入保证有唯一解。
输出
一个只包含ABCD的字符串代表答案。
样例输入
101110100
样例输出
ABCD
解题思路
字符串匹配的问题,第一眼感觉需要时用字典树,后来发现没太大必要,简单的匹配就可以
完整代码
#include<bits/stdc++.h>
using namespace std;
string s;
string st;
// 在函数中对字符串进行匹配
void checks(){
if(st=="0"){
cout<<'C';
st="";
}else if(st=="101"){
cout<<'A';
st="";
}else if(st=="11"){
st="";
cout<<'B';
}else if(st=="100"){
cout<<'D';
st="";
}
}
int main()
{
cin>>s;
for(int i=0;s[i];i++){
st+=s[i];
checks();
}
cout<<endl;
return 0;
}