有两个字符串s 和t,如果即从s 中删除一些字符,将剩余的字符连接起来,即可获得t。则称t是s 的子序列。
请你开发一个程序,判断t是否是s的子序列。
输入包含多组数据,每组数据包含两个字符串s和t。
它们都由数字和字母组成,且长度小于100000。
对应每一组输入,如果t是s的子序列,则输出“Yes”;否则输出“No”。
ABC ABC ABC AB ABC DE
Yes Yes No
#include <iostream>
#include <string>
using namespace std;
{
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;
}