博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 644 Immediate Decodability (字符处理)
阅读量:5977 次
发布时间:2019-06-20

本文共 2265 字,大约阅读时间需要 7 分钟。

An encoding of a set of symbols is said to be immediately decodable if no code for one symbol is the prefix of a code for another symbol. We will assume for this problem that all codes are in binary, that no two codes within a set of codes are the same, that each code has at least one bit and no more than ten bits, and that each set has at least two codes and no more than eight.

Examples: Assume an alphabet that has symbols {
A, B, C, D}

The following code is immediately decodable:

A:01 B:10 C:0010 D:0000

but this one is not:

A:01 B:10 C:010 D:0000 (Note that A is a prefix of C)

 

Write a program that accepts as input a series of groups of records from a data file. Each record in a group contains a collection of zeroes and ones representing a binary code for a different symbol. Each group is followed by a single separator record containing a single 9; the separator records are not part of the group. Each group is independent of other groups; the codes in one group are not related to codes in any other group (that is, each group is to be processed independently).

 

For each group, your program should determine whether the codes in that group are immediately decodable, and should print a single output line giving the group number and stating whether the group is, or is not, immediately decodable.

The Sample Input describes the examples above.

 

0110001000009011001000009

 

Set 1 is immediately decodableSet 2 is not immediately decodable

一个串不能是还有一个串的前缀。

#include
#include
#include
#include
#include
typedef long long LL;using namespace std;#define REPF( i , a , b ) for ( int i = a ; i <= b ; ++ i )#define REP( i , n ) for ( int i = 0 ; i < n ; ++ i )#define CLEAR( a , x ) memset ( a , x , sizeof a )//map
q;char str[1100][10],s[10];int main(){ int cas=1; std::ios::sync_with_stdio(false); while(cin>>str[0]) { int l=1; char *p; while(cin>>str[l]&&str[l++][0]!='9'); int flag=1; REP(i,l-1) { REP(j,l-1) { if(i==j) continue; p=strstr(str[i],str[j]); if((p-str[i])==0) { flag=0; break; } } } if(flag) printf("Set %d is immediately decodable\n",cas++); else printf("Set %d is not immediately decodable\n",cas++); } return 0;}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
关于Simple_html_dom的小应用
查看>>
鲁肃:蚂蚁金服的三个梦想
查看>>
华为程序员:加6天班!加班费1.4万元!网友:我能加到它破产
查看>>
Linux入门基础之grep命令详解及正则表达式
查看>>
Linux之Find命令详解
查看>>
crysis2 video&cryengine3 editor show
查看>>
Hibernate学习之SessionFactory的opensession 和 getCu...
查看>>
web网站服务(二)
查看>>
【第一期】网站打开错误问题解决方法集合
查看>>
j2ee开发防范URL攻击是个重要话题
查看>>
RSync实现文件备份同步
查看>>
如何判断一个服务是否正在运行
查看>>
精品软件 推荐 相当优秀的轻量级文本编辑器 Notepad2
查看>>
Lync 2013快速入门手册之三:组织Lync会议
查看>>
SQL SERVER 2008 表与约束的创建维护
查看>>
我的友情链接
查看>>
zabbix企业应用之监控mysql 5.6版本
查看>>
BGP选路原则与专有命令的研究
查看>>
关于java的引用、C++的指针、引用的深入分析
查看>>
CMD 修改Host文件 BAT
查看>>