P1098 字符串的展开代码求助
  • 板块题目总版
  • 楼主L_Legend
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/11/24 11:52
  • 上次更新2023/10/27 01:44:00
查看原帖
P1098 字符串的展开代码求助
533879
L_Legend楼主2022/11/24 11:52
#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分代码,看了一些其他大佬的代码,还是没有找到错误,哪位好心人可以帮忙看看呀

2022/11/24 11:52
加载中...