求救
查看原帖
求救
1061050
jiangyunuo楼主2024/11/10 20:29
#include<bits/stdc++.h>
using namespace std;
string ch;
int a,b,c;
string str;
int tot,len1,len2;
bool pd(int x){
	for(int i=0;i<len2;i++){
		if(ch[i+x]!=str[i])return 0;
	}
	return 1;
}
int main(){
	int n;
	cin>>n;
	cin>>ch;
	string sh;
	bool z;
	len1=ch.size();
	for(int i=1;i<=n;i++){
		cin>>c;
		if(c==1){
		    cin>>str;
		    len2=str.size();
		    ch+=str;
		    cout<<ch<<endl;
		    len1+=len2;
		}
		if(c==2){
		    cin>>a>>b;
		    tot=-1;
		    for(int i=a;i<=a+b;i++){
		    	ch[++tot]=ch[i];
			}
			for(int i=b;i<len1;i++)ch[i]=0;
			cout<<ch<<endl;
			len1=b;
		}
		if(c==3){
		    cin>>a>>str;
		    len2=str.size();
		    for(int i=a;i<len1;i++)sh[i-a]=ch[i];
		    for(int i=a;i<a+len2;i++)ch[i]=str[i-a];
			for(int i=len2+a;i<len2+len1;i++)ch[i]=sh[i-len2-a];
		    for(int i=0;i<len2+len1;i++)cout<<ch[i];
		    cout<<endl;
		    len1+=len2;
		}
		if(c==4){
		    cin>>str;
		    len2=str.size();
		    z=0;
		    for(int i=0;i<len1;i++){
		    	if(ch[i]==str[0])if(pd(i)){cout<<i<<endl;z=1;break;}
			}
			if(!z)cout<<-1<<endl;
		}
	}
	return 0;
}
2024/11/10 20:29
加载中...