社区讨论

P1098 字符串的展开代码求助

题目总版参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@lo7h4bx5
此快照首次捕获于
2023/10/27 01:44
2 年前
此快照最后确认于
2023/10/27 01:44
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;

int main() {
	int p1, p2, p3, note = 0;
	cin >> p1 >> p2 >> p3;
	string s, ans = "";
	cin >> s;
	for (int i = 0; i < s.length(); i++) {
		if (s[i] == '-' && i == 0) {
			ans += '-';
		} else if (s[i + 1] != '-') {
			ans += s[i];
		} else if (s[i + 1] == '-'){
			ans += s[i];
			int ln = s[i];
			int rn = s[i + 2];
			if (ln >= 48 && ln <= 57 && rn >= 48 && rn <= 57) {
				if (ln < rn) {
					if (p1 == 3) {
						for (int j = ln + 1; j < rn; j++) {
							for (int h = 0; h < p2; h++) {
								ans += '*';
							}
						}
					} else if (p1 == 1 || p1 == 2){
						if (p3 == 1) {
							for (int j = ln + 1; j < rn; j++) {
								for (int h = 0; h < p2; h++) {
									ans += char(j);
								}
							}
						} else if (p3 == 2) {
							for (int j = rn - 1; j > ln; j--) {
								for (int h = 0; h < p2; h++) {
									ans += char(j);
								}
							}
						}
					}
				}else if (ln >= rn) {
					ans += '-';
				}
			} else if (ln >= 97 && ln <= 122 && rn >= 97 && rn <= 122) {
				if (ln < rn) {
					if (p1 == 1) {
						if (p3 == 1) {
							for (int j = ln + 1; j < rn; j++) {
								for (int h = 0; h < p2; h++) {
									ans += char(j);
								}
							}
						} else if (p3 == 2) {
							for (int j = rn - 1; j > ln; j--) {
								for (int h = 0; h < p2; h++) {
									ans += char(j);
								}
							}
						}
					} else if (p1 == 2) {
						if (p3 == 1) {
							for (int j = ln + 1; j < rn; j++) {
								for (int h = 0; h < p2; h++) {
									ans += char(j - 32);
								}
							}
						} else if (p3 == 2){
							for (int j = rn - 1; j > ln; j--) {
								for (int h = 0; h < p2; h++) {
									ans += char(j - 32);
								}
							}
						}
					} else if (p1 == 3) {
						for (int j = ln + 1; j < rn; j++) {
							for (int h = 0; h < p2; h++) {
								ans += '*';
							}
						}
					}
				}else if (ln >= rn) {
					ans += '-';
				}
			} else {
				ans += '-';
			}
			ans += s[i + 2];
			i += 2;
		}
	}
	cout << ans << endl;
	return 0;
}
70分代码,看了一些其他大佬的代码,还是没有找到错误,哪位好心人可以帮忙看看呀

回复

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

正在加载回复...