社区讨论

有没有大犇看看问题在哪,只过了1、5两个数据

P5734【深基6.例6】文字处理软件参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mhj3pav6
此快照首次捕获于
2025/11/03 20:13
4 个月前
此快照最后确认于
2025/11/03 20:13
4 个月前
查看原帖
CPP
#include <iostream>
#include <string>
using namespace std;
int q, n, a, b;
string str, s;
bool n4(string str, string s) {
	for(int i = 0; i < str.length(); i++) {
		for(int j = 0; j <= s.length(); j++) {
			if(str[i + j] != s[j]) {
				break;
			}
			return true;
		}
	}
	return false;
}
int main() {
	cin >> q >> str;
	for(int i = 1; i <= q; i++) {
		cin >> n;
		if(n == 1) {
			cin >> s;
			for(int i = str.length(); i < str.length() + s.length(); i++) {
				str[i] = s[i - str.length()];
			}
			for(int i = 0; i < str.length() + s.length(); i++) {
				cout << str[i];
			}
			cout << endl;
		}
		if(n == 2) {
			cin >> a >> b;
			for(int j = a; j < a + b; j++) {
				s[j - a] = str[j];
			}
			str = s;
			for(int i = 0; i < b; i++) {
				cout << str[i];
			}
			cout << endl;
		}
		if(n == 3) {
			cin >> a >> s;
			string ss;
			for(int i = a; i < str.length(); i++) {
				ss[i - a] = str[i];
			}
			for(int i = a; i < a + s.length(); i++) {
				str[i] = s[i - a];
			}
			for(int i = a + s.length(); i < str.length() + s.length(); i++) {
				str[i] = ss[i - a - s.length()];
			}
			for(int i = 0; i < str.length() + s.length(); i++) {
				cout << str[i];
			}
			cout << endl;
		}
		if(n == 4) {
			cin >> s;
			if(!n4(str, s)) {
				cout << -1 << endl;
			}
			else{
				bool flag = 1;
				for(int i = 0; i < str.length() && flag; i++) {
					for(int j = 0; j <= s.length() && flag; j++) {
						if(str[i + j] != s[j]) {
							break;
						}
						cout << i << endl;
						flag = 0;
					}
				}
			}
		}
	}
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...