c++点1RE,点2 3 4WA,点5AC,求调
查看原帖
c++点1RE,点2 3 4WA,点5AC,求调
1200551
yuan2795楼主2024/8/22 08:44
#include<bits/stdc++.h>
using namespace std;
int q;string s,str;
string er(int m,int n)

{
	string v;
	for(int i=m;i<m+n;i++)
	{
		v[i-m]=s[i];
	}
	return v;
}
string san(int m,string jj)
{
	string v;
	for(int i=0;i<m;i++)
	{
		v[i]=s[i];
	}
	for(int i=0;i<jj.size();i++)
	{
		v[i+m]=jj[i];
	}
	for(int i=m;i<s.size();i++)
	{
		v[i+jj.size()]=s[i];
	}
	return v;
}
int si(string m,int k)

{
	int cnt=-1;
	for(int i=0;i<s.size()-k+1;i++)
	{
		int j=0;
		int flag=0;
		while(s[i]==m[j]&&j<k)
		{
			flag=1;
			i++;
			j++;
		}
		if(j==k)
		{
			cnt=i-j;
			break;
		}
		if(flag==1)
		{
			i--;
		}
	}
	return cnt;
}
int main()
{
	cin>>q>>s;
	for(int i=1;i<=q;i++)
	{
		int x;
		cin>>x;
		if(x==1)
		{
			cin>>str;
			s=s+str;
			cout<<s<<endl;
		}
		if(x==2)
		{
			int a,b;
			cin>>a>>b;
			s=er(a,b);
			cout<<s<<endl;
		}
		if(x==3)
		{
			int j;
			cin>>j>>str;
			s=san(j,str);
			cout<<s<<endl;
		}
		else{
			cin>>str;
			int len=str.size();
			int mt=si(str,len);
			cout<<mt<<endl;
		}
	}
	return 0;
}
2024/8/22 08:44
加载中...