UVa644 立即可解码性
来源:互联网 发布:注册淘宝小号的技巧 编辑:程序博客网 时间:2024/06/01 09:51
思想:主要受上一题10815的启发,对每组数据在进行前缀判断时,可以先排序(因为排序后再判断的话,只需要判断相邻的即可),再遍历所有元素,对其与其相邻(后一个)元素进行前缀判断。其中前缀判断是用strncmp的第三个参数指定前n个字符比较。
Code:
#include<stdio.h>#include<stdlib.h>#include<string.h>int cmp_string(const void* _a, const void* _b);void imdecode(int n, int k);char code[10][20];int main(){int i = 0;//每组数据有i个code,即行数 int j = 1;//第j组数据 memset(code, 0, sizeof(code));while ((scanf("%s", code[i])) != EOF)//注意别忘了写!=EOF,否则意思是scanf成功读入0个值,不是检测到文件结尾。。 {//输入数据以EOF结束 if (code[i][0] == '9'){//一组数据 //for(int k=0;k<i;++k)//printf("%d: %s\n",k,code[k]);imdecode(i, j);j++;memset(code, 0, sizeof(code));i = 0;}elsei++;}//whilereturn 0;}void imdecode(int n, int k){qsort(code, n, sizeof(code[0]), cmp_string);//第三个参数是各元素占用空间大小,是sizeof,不是strlen。。。 bool b = 1;for (int i = 0; i<n; ++i){if (strncmp(code[i + 1], code[i], strlen(code[i])) == 0){//printf("%d:%s\n%d:%s\n",i+1,code[i+1],i,code[i]); b = 0;}}if (b)printf("Set %d is immediately decodable\n", k);elseprintf("Set %d is not immediately decodable\n", k);}int cmp_string(const void* _a, const void* _b){char* a = (char*)_a;char* b = (char*)_b;return strcmp(a, b);}
0 0
- UVA644-立即可解码性
- UVa644 立即可解码性
- UVA 644 立即的可解码性
- UVa 644 立即可解码性
- UVA644
- uva644--String
- ACM->uva644
- uva644-字符串
- uva644-字符串
- UVa 644 Immediate Decodability 立即解码
- 是干啥可立即司法的含金量
- uva644 - Immediate Decodability
- UVa644 Immediate Decodability
- UVA644 - Immediate Decodability
- 制作不用密码可立即登入的 ssh 用户
- 制作不用密码可立即登入的 ssh 用户
- QT中用socket接收图像数据(JPEG)后立即解码显示
- UVa644-Immediate Decodability-字符串-难度2
- C# treeview控件事件响应方法
- 程序员如何快速准备面试中的算法
- 使用STL输出组合序列 + UVa 441 Lotto
- 今日温故知新之输出格式
- 5.3 Python中的列表配对和枚举
- UVa644 立即可解码性
- 5.4 Python中对列表的增删改
- lua coroutine filter
- vs2010完美安装WTL
- 6 Python中的元组
- Tomcat内存溢出问题解决
- 散打:支付宝、微信、微博的“三国杀”
- js calendar
- 6 Python中的字典