题目 http://acm.hdu.edu.cn/showproblem.php?pid=4545
这个题目刚开始没有做出来 很纠结哦 做错了
后面参考了一下别人代码写出来的 发现很简单哦 只是我当时太笨了 呵呵 要注意一个地方 就是第一次输入的时候不要while(cin>>n)否则会出错哦
具体看代码
#include<iostream> #include<cstring> #include<cstdio> using namespace std; char s1[1010],s2[1010]; int mat[30][30]; int main() { int i,t,h,m; char a,b; cin>>t; for(h=1;h<=t;h++) { cin>>s1>>s2; memset(mat,0,sizeof(mat)); for(i=0;i<26;i++) mat[i][i]=1; cin>>m; for(i=1;i<=m;i++) { cin>>a>>b; mat[a-'a'][b-'a']=1; } m=0; for(i=0;s2[i];i++) { if(!s1[m]) break; if(mat[s2[i]-'a'][s1[m]-'a']) m++; } if(!s1[m]){cout<<"Case #"<<h<<": happy"<<endl;} else cout<<"Case #"<<h<<": unhappy"<<endl; } return 0; }