yuan2795 @ 2024-08-22 08:44:45
#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;
}
by hexuchen @ 2024-08-22 08:59:54
@yuan2795 改了你的代码,求关注
#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+=s[i]; //改成加法
}
return v;
}
string san(int m,string jj)
{
string v;
for(int i=0;i<m;i++)
{
v+=s[i]; //全部改成加法
}
for(int i=0;i<jj.size();i++)
{
v+=jj[i];
}
for(int i=m;i<s.size();i++)
{
v+=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;
}
if(x==4){ //不要用else
cin>>str;
int len=str.size();
int mt=si(str,len);
cout<<mt<<endl;
}
}
return 0;
}
by osu_rice222 @ 2024-08-22 09:00:11
可以用库函数啊啊啊!!!
#include <bits/stdc++.h>
using namespace std;
int main(){
int q,a,b;
string s,str;
cin>>q>>s;
while(q--){
int op;
cin>>op;
if(op==1) {
cin>>str;
s+=str;
cout<<s<<'\n';
}
else if(op==2){
cin>>a>>b;
s=s.substr(a,b);
cout<<s<<'\n';
}
else if(op==3){
cin>>a>>str;
s.insert(a,str);
cout<<s<<'\n';
}else{
cin>>str;
if(s.find(str)==string::npos)
cout<<-1<<'\n';
else
cout<<s.find(str)<<'\n';
}
}
return 0;
}
by yuan2795 @ 2024-08-22 09:02:29
@hexuchen 已关
by yuan2795 @ 2024-08-22 09:03:11
@hexuchen 已关注