题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4545
这题太坑了,小明的串可以任意删掉某个字符 这句话不知道大家是怎么理解的,我觉得应该是能够删除其中的一种字符,但是个数不限。
AC:直接模拟,相同或是能够转换得到就往后继续,不能就删除小明的,然后在判断。
坑死了。。。。。。。祭恋
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 5 using namespace std; 6 7 #define MAX 1005 8 9 char ch[102][2]; 10 char ch1[MAX]; 11 char ch2[MAX]; 12 int m; 13 14 bool judge(char a,char b); 15 int main() 16 { 17 //freopen("1.txt","r",stdin); 18 // freopen("1.txt","w",stdout); 19 int t; 20 int x = 1; 21 scanf("%d",&t); 22 int len1,len2; 23 24 while(t--) 25 { 26 scanf("%s%s",ch1,ch2); 27 scanf("%d",&m); 28 memset(ch,'0',sizeof(ch)); 29 30 for(int i = 0; i < m; i++) 31 { 32 getchar(); 33 ch[i][0] = getchar(); 34 getchar(); 35 ch[i][1] = getchar(); 36 } 37 38 len1 = strlen(ch1); 39 len2 = strlen(ch2); 40 int i,j; 41 bool flag = true,flag1 = true; 42 char flag_ch; 43 for(i = 0,j = 0; i < len1&& j < len2; ) 44 { 45 if(ch1[i] == ch2[j]) 46 { 47 i++; 48 j++; 49 } 50 else 51 { 52 bool judge_x = judge(ch2[j],ch1[i]); 53 54 if(judge_x) 55 { 56 i++; 57 j++; 58 } 59 else 60 { 61 j++; 62 } 63 } 64 } 65 66 if(i < len1) flag = false; 67 68 if(flag) 69 printf("Case #%d: happy",x++); 70 else 71 printf("Case #%d: unhappy",x++); 72 printf(" "); 73 } 74 return 0; 75 } 76 77 78 bool judge(char a,char b) 79 { 80 for(int i = 0; i < m; i++) 81 { 82 if(ch[i][0] == a && ch[i][1] == b) 83 return true; 84 } 85 return false; 86 }