试题名称 算法提高 字符串的操作 语言 C++
#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int main()
{
string s,f;
int q,x;
cin>>s>>q;
for(int i=0;i<q;i++)
{
cin>>f;
if(f[0]=='A')
{
string o;
cin>>o;
s=s+o;
}
else if(f[0]=='I')
{
string g,h,e;
cin>>x>>g;
e=s.substr(x-1,s.length()-x+1);
h=s.substr(0,x-1);
s=h+g+e;
}
else if(f[0]=='S')//Swap a b c d
{
int a,b,c,d;
cin>>a>>b>>c>>d;
string m0="",m1="",n1="",m2="",n2="";
m0=s.substr(0,a-1);//1
m1=s.substr(a-1,b-a+1);//2
n1=s.substr(b,c-b-1);//3
m2=s.substr(c-1,d-c+1);//4
n2=s.substr(d,s.length()-d);//5
s=m0+m2+n1+m1+n2;//2->-<-4
}
else if(f[0]=='R')
{
int a,b;
cin>>a>>b;
string mm;
string m1,m2;
int num6=s.length();
m1=s.substr(0,a-1);
m2=s.substr(b,num6-b);
mm=s.substr(a-1,b-a+1);
reverse(mm.begin(),mm.end());
s=m1+mm+m2;
}
else;
}
cout<<s<<endl;
return 0;
}
参考:https://blog.****.net/pengmingjv/article/details/105640998