题意:给一个字符串s,每次可以在一个字符的右边加一个与这个字符不同的字符,问是否能变成字符串t。
思路:第一个不相等 || 第一个连续的的个数s
#include<bits/stdc++.h>
#define debug(a) cout << #a << " " << a << endl
#define LL long long
#define ull unsigned long long
#define PI acos(-1.0)
#define eps 1e-6
const int N=1e5+7;
using namespace std;
char s1[N],s2[N];
int main ()
{
//yyy_3y
//freopen("1.in","r",stdin);
scanf("%s%s",s1+1,s2+1);
int len1=strlen(s1+1);
int len2=strlen(s2+1);
int i=1,j=1;
while(s1[i]==s1[i+1])++i;
while(s2[j]==s2[j+1])++j;
if(i<j || s1[1]!=s2[1] || len1>len2){
puts("No");
return 0;
}
j=1;
int flag=0;
for(int i=1;i<=len1;i++){
while(j<=len2 && s1[i]!=s2[j]) ++j;
if(s1[i]!=s2[j]) flag=1;
else ++j;
}
printf("%s\n",flag?"No":"Yes");
return 0;
}