#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;
int key=0;char save[20][20];
int com(char str[],int n)
{
//如果是前缀放回0//如果都不是前缀放回1;
int i;
for(i=0;i<=key;i++)
{
if(i==n)
continue;
char temp[20];
strncpy(temp,save[i],strlen(str)*sizeof(char));
temp[strlen(str)]='\0';
if(!strcmp(temp,str))
return 0;
}
return 1;
}
int main()
{
//freopen("in.txt","r",stdin);
int count=0;
char temp[20];
while(scanf("%s",temp)!=EOF)
{
count++;
key=0;
strcpy(save[0],temp);
while(scanf("%s",temp))
{
if(!strcmp("9",temp))
break;
key++;
strcpy(save[key],temp);
}
//下面开始处理,
int flag=0;
int i;
for(i=0;i<=key;i++)
{
//区一个数,跟其他的数比较,但是不跟自己比较。
if(!com(save[i],i))
flag=1;
}
if(flag==1)
{
printf("Set %d is not immediately decodable\n",count);
}
else
{
printf("Set %d is immediately decodable\n",count);
}
}
return 0;
}
/*
1 strncpy(dest,res,size)做完以后应该在后边加一个结束符号‘\0’
*/
hdoj 1305 strncpy
最新推荐文章于 2017-09-04 17:08:49 发布