文章
1
粉丝
1
获赞
2
访问
1427
代码如下,感觉逻辑比较简单,但是不能AC,想问一下是哪里还没有考虑到呢?
#include <bits/stdc++.h>
using namespace std;
string reverse(string s,int start,int eend){
int i=start;
int j=eend;
char temp;
while(i<j){
temp=s[i];
s[i]=s[j];
s[j]=temp;
i++;
j--;
}
return s;
}
int main()
{
string s;
while(cin>>s){
int n;
cin>>n;
for(int i=0;i<n;i++){
string order;
cin>>order;
int start = order[1]-'0';
int eend = start+order[2]-'0'-1;
//cout<<start<<' '<<eend<<endl;
// 翻转
if(order[0]=='0'){
s = reverse(s,start,eend);
}
// 替换
if(order[0]=='1'){
string s2=order.substr(3);
s.replace(start,eend,s2);
}
cout<<s<<endl;
}
}
return 0;
}
登录后发布评论
你对替换操作的题意理解有点问题
比如下面这组数据
jkygexrrwunuwxalgcbxistydvrxmfyhb
1
181wtr
正确输出是
jkygexrrwtrunuwxalgcbxistydvrxmfyhb
你的输出是
jkygexrrwtrgcbxistydvrxmfyhb