⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 20061000999.cpp

📁 小小的信息论 编码 实现唯一可译码的判断~
💻 CPP
字号:
#include"stdio.h"
#include"string.h"

typedef struct
{
	int num,ne;
	char ch[100][100];
}aa;

aa c,f;
int front,rear;
void insert(char ch[])
{
	int i,j;
	
	for(i=1;i<rear;i++)
	{
		if(strcmp(ch,f.ch[i])==0)break;
	}
	if(i==rear)
	strcpy(f.ch[rear++],ch);
}
		
int main()
{
	int i,j,k,l,l1;
	char str[100],str1[100];
	aa buf;

	while(scanf("%s",c.ch[c.num++]))
	{
		if(c.ch[c.num-1][0]=='@')
		break;
	} 
	strcpy(f.ch[0],"10");
	front=0;
	rear=1;
	while(front<rear)
	{
		strcpy(str,f.ch[front++]);
		for(i=0;i<c.num;i++)
		{
			strcpy(str1,c.ch[i]);
			 l1=strlen(str1);
			 l=strlen(str);
			if(l1<=l)continue;
			str1[l]=0;
			if(strcmp(str1,str)==0)
			{
				strcpy(str1,c.ch[i]+l);
				insert(str1);
			}
		}
			
		for(i=0;i<c.num;i++)
		{
			strcpy(str,c.ch[i]);
			for(j=1;j<rear;j++)
			{
				strcpy(str1,f.ch[j]);
				l1=strlen(str1);
				l=strlen(str);
				if(l1<=l)continue;
				str1[l]=0;
				if(strcmp(str1,str)==0)
				{
					strcpy(str1,f.ch[j]+l);
					insert(str1);
				}
			}
		}
			
	}

	int flag=0;
	for(j=1;j<rear;j++)
	{
		strcpy(str,f.ch[j]);
		for(i=0;i<c.num;i++)
		{
			if(strcmp(str,c.ch[i])==0)
			{
				flag=1;
				break;
			}
		}
	}

	for(i=1;i<rear;i++)
		printf("%s  ",f.ch[i]);
	printf("\n");
	if(flag==1)printf("NO\n");
	else printf("YES\n");


	return 1;
}
				
				
				
				
				
				
				
					

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -