题目:有一种编码方式。串仅仅有小写字母构成,每一个小写字母相应一个数字,如今给你妆化后的数字串,

问有多少个原串与之相应,注意数字串里可能有一个前导0。

分析:搜索。按字母顺序存储映射表,按字母顺序匹配搜索就可以。

说明:注意最多仅仅输出前100个。

#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>using namespace std;char buf[101];int  code[128];
char maps[128][5];
char letter[128];int  Count = 0;
char save[101];
void dfs(int s, int d, int n, int m)
{if (Count == 100) return;char word[101];if (s == n) {save[d] = 0;printf("%s\n",save);Count ++;return;}for (int k = 0 ; k < m ; ++ k) {int count = 0;for (int i = s ; i < n ; ++ i) {word[count ++] = buf[i];word[count] = 0;if (!strcmp(word, maps[k]) || (word[0] == '0' && !strcmp(word+1, maps[k]))) {save[d] = letter[k];dfs(i+1, d+1, n, m);}}}
}int main()
{int  n,t = 1;char c;while (~scanf("%d",&n) && n) {memset(code, 0, sizeof(code));for (int i = 0 ; i < n ; ++ i) {getchar();scanf("%c",&c);scanf("%d",&code[c]);}int count = 0;for (int i = 'a' ; i <= 'z' ; ++ i)if (code[i] > 0 && code[i] < 100) {letter[count] = i;if (code[i] > 9) {maps[count][0] = code[i]/10 + '0';maps[count][1] = code[i]%10 + '0';maps[count][2] = 0;}else {maps[count][0] = code[i] + '0';maps[count][1] = 0;}count ++;}scanf("%s",buf);printf("Case #%d\n",t ++);Count = 0;dfs(0, 0, strlen(buf), count);printf("\n");}return 0;
}

UVa 10950 - Bad Code相关推荐

  1. 佛吉尼亚大学计算机世界排名,弗吉尼亚大学计算机科学专业介绍_计算机科学专业排名及就业方向和前景-小站留学...

    录取要求 Background in Computer Science (including project work) Grade Point Average (GPA) Graduate Reco ...

  2. UVA 11557 - Code Theft (KMP + HASH)

    UVA 11557 - Code Theft 题目链接 题意:给定一些代码文本.然后在给定一个现有文本,找出这个现有文本和前面代码文本,反复连续行最多的这些文本 思路:把每一行hash成一个值.然后对 ...

  3. UVa 740 - Baudot Data Communication Code

    称号:目前编码,他们shift键被按下,并提出,对应的两个编码,其中,2相应的编码shift操作. 给你适当的编码值.寻求相应的字符串. 分析:模拟.字符串. 简单题,标记shift的升降分类处理就可 ...

  4. UVa 1593 Alignment of code 解题报告

    /练习输入输出 #include <bits/stdc++.h>using namespace std; void print(string str, int len) {if(str.l ...

  5. UVA 1593 Alignment of Code

    题意: 输入后对齐输出. 思路: ①用一个vector数组装每行的字符. ②用整型数组len存每列最大的长度加一(多算一个空格),比如在样例输入中,第一列最大的是start:. 1 #include& ...

  6. UVA 11752 超级幂

    UVA 11752 超级幂 Z - The Super Powers Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & ...

  7. UVA 116 Unidirectional TSP DP

    题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&p ...

  8. Uva 11997 多路归并

    题目链接:https://uva.onlinejudge.org/external/119/11997.pdf 题意: k*k的矩阵,从每一行中选一个元素加起来,可以得到 kk个和,求前 k 个最小值 ...

  9. uva live 4394 String painter 间隔dp

    // uva live 4394 String painter // // 问题是,在培训指导dp运动主题,乍一看,我以为只是一点点复杂 // A A磕磕磕,两个半小时后,.发现超过例子.然而,鉴于他 ...

  10. Uva 10305 给任务排序

    题目链接:https://uva.onlinejudge.org/external/103/10305.pdf 紫书P167 拓扑排序. dfs--从一个点出发,dfs 与之相连的所有点,把本身放入到 ...

最新文章

  1. Nginx和Tengine
  2. 盘点关于Java在生活中的应用!
  3. Intellij 14快捷键
  4. 计算机c盘隐藏了怎么办,win7怎么隐藏c盘 win7c盘被隐藏了怎么解除
  5. linux下配置squid 服务器,最简单使用方式
  6. vivo X30 5G版现身Geekbench:搭载三星Exynos 980
  7. 宁波大学计算机应用技术考研,宁波大学2021年计算机考研拟录取数据分析
  8. 数字化落后,工业就挨打!
  9. [笔记一]Essential JavaScript Design Patterns For Beginners
  10. jquery.blockui示例
  11. android关于讯飞语音包的开发
  12. 关于AD之PCB各层的简单说明
  13. 基于Multisim的声光控制路灯电路设计
  14. 中小学青少年编程创意机器人相关技术等级考试资料(含下载链接)
  15. 实验一  安装并熟悉Rational Rose 环境
  16. 不好好作图的NCS系列(二):3D版的PCA图
  17. 数据重复插入问题及解决方案
  18. 【渝粤题库】广东开放大学 PLC技术与应用 形成性考核
  19. MacBook触摸板常用的手势技巧
  20. Windows Server 磁盘空间不足怎么办

热门文章

  1. 制作验证码使用到的函数
  2. 更新Android SDK之后Eclipse提示ADT版本过低的一个简易解决办法
  3. 如何用B表的数据,更新A表的值
  4. HBuilderx中编译sass文件
  5. Kali Linux桥接模式配置DNS服务器
  6. 2.1 LibCurl编程流程(转)
  7. 作业5(《构建之法》心得体会)
  8. PHP实现伪静态化页面的具体实现方式
  9. (转)javascript 从数组中删除指定值(不是指定位置)的元素
  10. 使用WndProc来处理消息