58分求助
查看原帖
58分求助
583916
tjer楼主2022/5/15 11:01

这道题只能用KMP吗...

#include<bits/stdc++.h>
#define maxn 100005
using namespace std;
vector<char> a;
string b;
int main(){
	char ch;
	while(scanf("%c",&ch)){
		if(ch==' '||ch=='\n') break;
		a.push_back(ch);
	}
	cin >>b;
	while(1){
		int flag=1;
		int s1=a.size();
		for(register int i=0;i<s1;i++){
			if(a[i]==b[0]&&a[i]!='0'){
				int flag1=1;
				if(b.length()==1){
					a.erase(a.begin()+i);
					flag=0;
				}else{
					int bb1=b.length();
					for(register int j=0;j<bb1;j++){
						if(a[i+j]!=b[j]) {
							flag1=0;break;
						}
					}
					if(flag1) {
						a.erase(a.begin()+i,a.begin()+i+b.length());
						flag=0;
					}
				}
			}
		}
		if(flag) break;
	}
	int s1=a.size();
	for(register int i=0;i<s1 ;i++){
		cout <<a[i];
	}
	return 0;
} 
2022/5/15 11:01
加载中...