View Code
1 #include <iostream>
2 #include <cstring>
3 #include <cstdio>
4 using namespace std;
5 char a[100005],b[100005];
6 int ans[2][100005];
7 void solve()
8 {
9 int len1 = strlen(a);
10 int len2 = strlen(b);
11 memset(ans,0,sizeof(ans));
12 for(int i=0;i<len1;i++)
13 {
14 for(int j=0;j<len2;j++)
15 {
16 if((i+1) & 1){
17 if(a[i] == b[j])
18 ans[1][j+1] = ans[0][j] + 1;
19 else
20 ans[1][j+1] = max(ans[0][j+1],ans[1][j]);
21 }
22 else
23 {
24 if(a[i] == b[j])
25 ans[0][j+1] = ans[1][j] + 1;
26 else
27 ans[0][j+1] = max(ans[1][j+1],ans[0][j]);
28 }
29 }
30 }
31 if(ans[len1&1][len2] == len1 ) cout << "Yes" << endl;
32 else cout << "No" << endl;
33 }
34 int main()
35 {
36 while(cin >> a >> b)
37 {
38 solve();
39 }
40 return 0;
41 }
 posted on 2011-04-26 14:55  eth0  阅读(131)  评论(0编辑  收藏  举报