一个字符串删除判断是否达到两字符匹配
程序员文章站
2023-12-21 15:49:46
...
【问题描述】
输入两个字符串s和t,判断是否可以从t中删除0个或多个字符(其他字符顺序不变),得到字符串s。
限制条件:字符串s和t的长度不能超过1024
【输入形式】
输入两行数据,第一行输入字符串s,第二行输入字符串t。
【输出形式】
输出yes或no
【样例输入】
bce
abcde
【样例输出】
yes
#include<bits/stdc++.h>
using namespace std;
int f[1024],flag;
int main(){
string s1;
string s2;
cin>>s1;
cin>>s2;
int pos=0;
int l1=s1.length();
int l2=s2.length();
if(l2<l1){
cout<<"no"<<endl;
}else if(l2==l1){
if(s1==s2){
cout<<"yes"<<endl;
}else{
cout<<"no"<<endl;
}
}else{
for(int i=0;i<l2;i++){
char ch=s2[i];
for(int j=pos;j<l1;j++){
if(f[j]==0){
if(ch==s1[j]){
f[j]=1;
pos=j;
break;
}
}
}
}
for(int k=0;k<l1;k++){
if(f[k]!=1){
flag=1;
cout<<"no"<<endl;
}
}
if(!flag){
cout<<"yes"<<endl;
}
}
return 0;
}
PS:欢迎小伙伴多多交流!!!