1 #include<iostream>
2 #include<string>
3 #include<cstring>
4 using namespace std;
5
6 int Find(char *fstr, char *sstr)
7 {
8 int lenf = strlen(fstr), lens = strlen(sstr), i;
9 for (i = 0; i < lenf; i++)
10 {
11 int k = i; //搜寻从下一个字符作为首字符开始
12 int j = 0; //子串每次都从第一个字符开始
13 while (fstr[k] && sstr[j]) { //结束条件是,其中一个字符串到达了'\0'
14 int _i;
15 for (_i = k; _i < lenf; _i++) { //在fstr中查找sstr[j]字符
16 if (fstr[_i] != sstr[j]) //找不到继续
17 continue;
18 else {
19 j++; k = _i; k++; break; //将找到sstr[j]字符的下一个位置赋给k,再扫描后面是否有新sstr[j]
20 }
21 }
22 if (_i == lenf) //如果找不到--如何处理---如果连一个字符都没有相同的,这个就可以得出无法得出了
23 return false;
24 }
25 if (j == lens) {
26 return true;
27 }
28 else
29 continue;
30 }
31 if (i == lenf)
32 return false;
33 }
34
35 const int maxn = 1010;
36
37 int main()
38 {
39 char s[maxn], t[maxn];
40 cin >> s >> t;
41 if (Find(t, s))
42 cout << "Yes" << endl;
43 else
44 cout << "No" << endl;
45 return 0;
46 }