求助dalao,只有第三个点RE
查看原帖
求助dalao,只有第三个点RE
552165
ComplexPlanck楼主2021/10/2 00:46
#include <bits/stdc++.h>
using namespace std;

int n,t;
string s,sc;
int a,b;

int main()
{
	cin>>n>>s;
	int lens=s.length();

	for (int i=1;i<=n;i++)
	{
		cin>>t;
		switch(t)
		{
			case 1:
			{
				cin>>sc;
				int del=sc.length();
				for (int i=lens;i<=lens+del-1;i++)
					s[i]=sc[i-lens];
				lens+=del;
				for (int j=0;j<=lens-1;j++) cout<<s[j];
				cout<<endl;
				break;
			}
			case 2:
			{
				cin>>a>>b;
				for (int j=a;j<=a+b-1;j++)
					s[j-a]=s[j];
				lens=b;
				for (int j=0;j<=lens-1;j++) cout<<s[j];
				cout<<endl;
				break;
			}
			case 3:
			{
				cin>>a>>sc;
				int del=sc.length();
				for (int j=lens-1;j>=a;j--)
					s[del+j]=s[j];
				for (int j=a;j<=a+del-1;j++)
					s[j]=sc[j-a];
				lens+=del;
				for (int j=0;j<=lens-1;j++) cout<<s[j];
				cout<<endl;
				break;
			}
			case 4:
			{
				cin>>sc;
				int stt=-1;
				int lenc=sc.length();
				if (lenc<=lens)
				{
					for (int j=0;j<=lens-1;j++)
						if (s[j]==sc[0])
						{
							bool pd=1;
							for (int k=j;k<=lenc+j-1;k++)
								if (s[k]!=sc[k-j])
								{
									pd=0;
									break;
								}
							if (pd) {stt=j;break;}
						}
					cout<<stt<<endl;
				}
				break;
			}
		}
	}
	return 0;
}
2021/10/2 00:46
加载中...