16. 前缀码判定
来源:互联网 发布:电力行业大数据应用 编辑:程序博客网 时间:2024/05/22 15:33
16. 前缀码判定
成绩10开启时间2014年11月23日 Sunday 15:40折扣0.8折扣时间2014年12月7日 Sunday 23:55允许迟交否关闭时间2014年12月14日 Sunday 23:55
前缀码:任何一个字符的编码都不是同一字符集中另一个字符的编码的前缀。
请编写一个程序,判断输入的n个由1和0组成的编码是否为前缀码。如果这n个编码是前缀码,则输出"YES”;否则输出第一个与前面编码发生矛盾的编码。
输入:
第1行为n(表示下面有n行编码)
第2~n+1行为n个由0或1组成的编码
输出:判断结果
例如,如果输入:
5
00
01
10
110
111
每一个字符均不是其他字符编码的前缀,所以,输出:YES
再如,如果输入:
5
00
01
10
110
11
编码11与前面的编码110的前缀,所以,输出:11
- 5↵
- 00↵
- 01↵
- 10↵
- 110↵
- 111↵
- YES↵
- 5↵
- 00↵
- 01↵
- 10↵
- 110↵
- 11↵
- 11↵
- 5↵
- 00↵
- 01↵
- 10↵
- 11↵
- 111↵
- 111↵
- 5↵
- 111↵
- 110↵
- 10↵
- 01↵
- 00↵
- YES↵
- 8↵
- 00↵
- 010↵
- 0110↵
- 0111↵
- 10↵
- 110↵
- 1110↵
- 1111↵
- YES↵
- 8↵
- 00↵
- 010↵
- 0110↵
- 0111↵
- 10↵
- 11↵
- 1110↵
- 111↵
- 1110↵
#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct Node{int flag;struct Node *lchild;struct Node *rchild;}*BiTree,BITree;int main(){int n;char map[100000];int flag = 0;int LEN;int i;BiTree Tree;BiTree p;Tree = (BiTree)malloc(sizeof(BITree));Tree->flag = 0;Tree->lchild = NULL;Tree->rchild = NULL;scanf("%d", &n);while (n--){memset(map, 0, sizeof(map));scanf("%s", map);LEN = strlen(map);p = Tree;for (i = 0; i < LEN; i++){if (map[i] == '1'){if (p->lchild == NULL){p->lchild = (BiTree)malloc(sizeof(BITree));p = p->lchild;p->lchild = NULL;p->rchild = NULL;if (i == LEN - 1)p->flag = 1;elsep->flag = 0;}else{if (p->lchild->flag == 1 || i == LEN - 1){flag = 1;break;}else{p = p->lchild;}}}else{if (p->rchild == NULL){p->rchild = (BiTree)malloc(sizeof(BITree));p = p->rchild;p->lchild = NULL;p->rchild = NULL;if (i == LEN - 1)p->flag = 1;elsep->flag = 0;}else{if (p->rchild->flag == 1 || i == LEN - 1){flag = 1;break;}else{p = p->rchild;}}}if (flag == 1){break;}}if (flag == 1)break;}if (flag == 0)printf("YES\n");elseprintf("%s\n", map);return 0;}
0 0
- 16. 前缀码判定
- 11. 前缀码判定
- 前缀码
- 前缀码
- 前缀
- 前缀
- java script用户判定及验证码
- 【水题-前缀码】HDU 1305 Immediate Decodability
- 哈夫曼编码(最优前缀码)
- 判定覆盖
- 素数判定
- 浏览器判定
- 判定字符串
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 素数判定
- 15. 计算WPL
- ie专有hack
- [English]表示比较的语句
- UVA 10494-If We Were a Child Again(大数除法及取余)
- Direct3D开启光照和使用材质绘制物体
- 16. 前缀码判定
- hdu3157 有源汇上下界最小流
- Mysql服务器设置及技巧
- hibernate 导出数据库成功 在hibernate里面做数据库
- 代码统计工具-python版本
- jquery easy UI 的hello版
- 17. 图的广度优先遍历
- 保护Spring应用之——spring Security(一)
- Iterator模式(C++迭代器模式)