魔法串

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 2817    Accepted Submission(s): 1029

Problem Description
小明和他的好朋友小西在玩一个新的游戏,由小西给出一个由小写字母构成的字符串,小明给出另一个比小西更长的字符串,也由小写字母组成,如果能通过魔法转换使小明的串和小西的变成同一个,那么他们两个人都会很开心。这里魔法指的是小明的串可以任意删掉某个字符,或者把某些字符对照字符变化表变化。如:
    小西的串是 abba;
    小明的串是 addba; 
    字符变化表 d b (表示d能转换成b)。
  那么小明可以通过删掉第一个d,然后将第二个d转换成b将串变成abba。

  现在请你帮忙判断:他们能不能通过魔法转换使两个人的串变成一样呢?

Input
首先输入T,表示总共有T组测试数据(T <= 40)。
  接下来共T组数据,每组数据第一行输入小西的字符串,第二行输入小明的字符串(数据保证字符串长度不超过1000,小明的串的长度大于等于小西的,且所有字符均为小写字母)。接着输入字母表,先输入m,表示有m个字符变换方式(m< = 100),接着m行每行输入两个小写字母,表示前一个可以变为后一个(但并不代表后一个能变成前一个)。
Output
对于每组数据,先输出Case数。
  如果可以通过魔法转换使两个人的串变成一样,输出“happy”,
  否则输出“unhappy”。
  每组数据占一行,具体输出格式参见样例。
Sample Input
2 abba addba 1 d b a dd 0
Sample Output
Case #1: happy Case #2: unhappy
Source
2013金山西山居创意游戏程序挑战赛——初赛(1)
想法:
遍历一遍
代码:
#include<stdio.h>
#include<string.h>
char s[1010];
char s1[1010];
int ch[50][50];
int main()
{
    int T;
    scanf("%d",&T);
    int ws=1;
    while(T--)
    {
       getchar();
       memset(ch,0,sizeof(ch));
       gets(s);
       gets(s1);
       int i,j,m;
       int flag=0;
       int len=strlen(s);
       int len1=strlen(s1);
       scanf("%d",&m);

char a,b;
       for(i=0;i<m;i++)
       {
           getchar();
           scanf("%c %c",&a,&b);
           ch[a-'a'][b-'a']=1;
       }
       j=0;
       for(i=0;i<len;i++)
       {
           if(j==len1)
              break;
           if(s[i]==s1[j])
           {
               j++;
               continue;
           }
           while(s[i]!=s1[j])
           {
               if(j==len1)
               {
                   flag=1;
                   break;
               }
               if(ch[s1[j]-'a'][s[i]-'a']==1)
               {
                   j++;
                   break;
               }
               else
                j++;
           }

}
       if(flag==0)
            printf("Case #%d: happy\n",ws++);
       else
            printf("Case #%d: unhappy\n",ws++);
    }
    return 0;
}

杭电acm 4545魔法串(字符串处理)相关推荐

  1. 杭电ACM刷题(1):1002,A + B Problem II

    最近忙于考试复习,没有多少可供自己安排的时间,所以我利用复习之余的空闲时间去刷刷杭电acm的题目,也当对自己编程能力的锻炼吧. Problem Description I have a very si ...

  2. 杭电acm2151题java的解法,杭电ACM题型分类

    杭电ACM题型分类 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.1032.1037.1040.1048.1 ...

  3. 杭电ACM(HDUOJ)试题分类

    杭电ACM试题分类 第一篇 1001 这个就不用说了吧                      1002 简单的大数                            1003 DP经典问题,最 ...

  4. 杭电acm第2304题答案c语言,【转】杭电ACM试题分类

    注:网上搜的 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 ...

  5. 杭电ACM题目类型整理

    版权声明:(╯3╰) 转载请注明: http://blog.csdn.net/bat67 杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 10 ...

  6. 【杭电ACM】1097 A hard puzzle

    [杭电ACM]1097  A hard puzzle http://acm.hdu.edu.cn/showproblem.php?pid=1097 先用int手写了算法结果竟然wrong answer ...

  7. 杭电acm a+b问题

    杭电acm 1000 a+b问题代码 int main() { int a,b; for(;~scanf("%d%d",&a,&b);printf("%d ...

  8. 杭电ACM 1174

    //身高,又称身长,是指一个人从头顶到脚底的身体长度. //杭电ACM 1174 爆头 #include<iostream> #include<cmath> using nam ...

  9. 杭电acm 2022

    海选女主角 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

最新文章

  1. 前端js判断上传是否为EXCEL表格问题
  2. 谈谈Backlog梳理活动
  3. 辞退了一名 2 年工作经验的前端工程师
  4. matlab同窗口显示图片,[求助]关于GUI的问题,如何在同一窗口里显示四副图片...........
  5. Matlab | Matlab从入门到放弃(13)——基于Matlab的非线性函数的运算
  6. 分析师分析业务维度,(个人制作分析思维导图Xmind)
  7. 【习题 5-14 UVA - 1598】Exchange
  8. MySQL left()函数
  9. Windows 动态链接库 DLL 浅析
  10. 【软件工程】抽象泄漏
  11. 下面哪个选项不是oracle用户,作业三(有答案)
  12. sublime html整理阶梯,sublime text 之添加插件 并使用
  13. 类和对象编程(六):内联函数
  14. MapReduce:详解Shuffle过程
  15. 洛谷 P1560 [USACO5.2]蜗牛的旅行Snail Trails(不明原因的scanf错误)
  16. DSP28335-ADC与SCI实现采样回传串口
  17. 软件界旷世之架:测试驱动开发(TDD)之争
  18. 安卓10不支持qmc解码_你永远都不知道手机中计算器的秘密!安卓IOS都支持!
  19. java字符串长度解答
  20. SpringBoot集成SpringSecurity步骤

热门文章

  1. 【来日复制粘贴】使用公式提取数据
  2. Linux环境下——实现xml文件解析
  3. paramiko的get_pty=True参数
  4. vs qt中增加png图标
  5. 实施工程师mysql面试题_软件实施工程师面试题目
  6. ol,li,ul列表
  7. 【代码】C++实现二叉树基本操作及测试用例
  8. 万豪国际集团旗下福朋喜来登品牌首度亮相苏州吴中
  9. 宾补其实是宾语从句的省略
  10. JQuery中的id选择器含有特殊字符时,不能选中dom元素的解决方法