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

问有多少个原串与之相应,注意数字串里可能有一个前导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;
}

最新文章

  1. HDFS 与 GFS 的设计差异
  2. 在Windows Server 2012 R2上安装SharePoint 2013 with SP1失败,提示没有.net4.5的解决办法
  3. 【Java】模板方法模式
  4. JavaScript-setTimeout
  5. Uva 11538 - Chess Queen
  6. How to adjust OOM score for a process?
  7. Android——文件的保存和读取
  8. 遗传学详解及Matlab算法实现
  9. ASP.NET MVC 入门2、项目的目录结构与核心的DLL
  10. [洛谷1580]yyy loves Easter_Egg I
  11. XML and JSON 验证
  12. redis-如何在工程中使用redis
  13. c语言基础学习06
  14. paas saas iaas 区别
  15. ACE + TAO工程中的Messenger启动过程
  16. 最短路问题 Floyd+Dijkstra+SPFA
  17. BZOJ3123[Sdoi2013]森林——主席树+LCA+启发式合并
  18. php-fpm 配置文件检测
  19. HashMap 、HashTable、TreeMap、WeakHashMap的区别是什么
  20. 前端独立引用 ejs模版

热门文章

  1. Shorthand Argument Names $0 : 只用于指代Closer声明中的形参
  2. MySql(一)mysql服务的基本操作及环境配置
  3. wireshark mqtt协议解析
  4. http 1.0 http 1.1 http 2.0的区别
  5. VC++线程函数内怎么调用外部函数
  6. vue解决IOS10低版本白屏问题
  7. Delphi最简化异步选择TCP服务器
  8. 使用layer时控制台出现: Failed to load resource: the server responded with a status of 404 (Not Found)
  9. 采用Qt快速绘制多条曲线(折线),跟随鼠标动态显示线上点的值(基于Qt的开源绘图控件QCustomPlot进行二次开发)
  10. Windows下Eclipse+PyDev安装Python开发环境