题意:输入一些二进制编码,判断是否有是其它编码前缀的编码,如果有则输出...not...。没有则可编码。每组输入数据以9为结束标志。
#include<iostream>
using namespace std;
int main()
{
char str[15][15];
int i=0,h=1,j,k,len1,len2,flag=0;
while(scanf("%s",str[i++])!=EOF)
{
if(str[i-1][0]=='9')
{
for(j=0;j<i-1;j++)
{
len1=strlen(str[j]);
for(k=0;k<i-1;k++)
{
if(k==j) continue;
len2=strlen(str[k]);
if(len1<len2)
{
if(strncmp(str[j],str[k],len1)==0)
{
flag=1;
goto loop;
}
}
}
}
loop:
{
if(!flag) printf("Set %d is immediately decodable\n",h++);
else printf("Set %d is not immediately decodable\n",h++);
i=0;
flag=0;
}
}
}
}
更多推荐
poj 1056 判断前缀
发布评论