思路:定义两个字符串str1 和 str2,接收输入,然后定义两个循环变量i 和 j,令j = 0。从i = 0 ~
str1.length() - 1判断,如果str1[i] == str2[j],则 j ++, i ++;否则i ++,继续判断。直到i
== str1.length()或j == str2.length(),退出循环。
如果j == str2.length(),
即str2所有字符都可以在str1中顺序找到,输出“Yes”;否则输出“No”。
代码如下:
// write your code here cpp
#include <iostream>
#include <string>
using namespace std;
void jugeStr(string str1, string str2)
{
int len1
= str1.length(), len2 = str2.length();
int i,
j; //定义str1和str2的循环变量
for(i = 0, j = 0; i < len1
&& j < len2;)
{
//如果str1[i] ==
str2[j],则移到str2的下一位
if(str1[i] == str2[j])
j ++;
i ++; //移到str1的下一位
}
if(j ==
len2) //如果str2遍历完毕,表示str1中存在str2的所有字符
cout <<
"Yes" << endl;
else
cout <<
"No" << endl;
}
int main()
{
string s1, s2;
while(cin >> s1 >> s2)
jugeStr(s1, s2);
return 0;
}