文章

2

粉丝

60

获赞

0

访问

1.3k

头像
查找 - 北邮 题解:过了,替换长度可能不一样,用到了string的erase函数和insert函数
P1387 北京邮电大学
发布于2024年3月15日 11:14
阅读数 757

 

#include<bits/stdc++.h>
using namespace std;
void reverse(string &s, int begin, int end) {
	for (int i = begin, j = end; i < j; i++,j--) {
		swap(s[i],s[j]);
	}
}
int main() {
	string str;
	while (cin>>str) {
		int n;
		cin>>n;
		for (int i = 0; i < n; i++) {
			string s;
			cin>>s;
			//反转
			if (s[0] == '0') {
				int begin = s[1]-'0';
				int end = s[2]-'0'+begin-1;
				reverse(str, begin, end);
				cout<<str<<endl;
			}
			else if (s[0] == '1') {
				int begin = s[1]-'0';
				int end = s[2]-'0'+begin-1;
				string s1 = s.substr(3, s.size());
				str.erase(str.begin()+begin, str.begin()+end+1);
				str.insert(begin,s1);
				cout<<str<<endl;
			}
		}
	}
	return 0;
}

		

 

登录查看完整内容


登录后发布评论

1 条评论
snake VIP
2024年3月15日 12:08

注意审题,替换操作的题意没理解对

赞(1)