C++,写了两小时还是30分,求助大佬看下代码,自己认为应该对啊,,,,
查看原帖
C++,写了两小时还是30分,求助大佬看下代码,自己认为应该对啊,,,,
571939
A_pier楼主2021/10/16 15:21
#include<iostream>
#include<string>
#include<algorithm>
#include<math.h>
using namespace std;

int main()
{
	int p1, p2, p3;
	cin >> p1 >> p2 >> p3;
	string s;
	cin >> s;
	int col = 0;
	int d_value = 0;
	string str;
	while (s.find('-', col) != string::npos) {
		col = s.find('-', col);
		if (col == 0 || col == s.length() - 1) {
			col++;
			continue;
		}
		if (abs(s[col - 1] - s[col + 1]) > 25) {
			col++;
			continue;
		}
		if (s[col + 1] == '-' || s[col - 1] == '-') {
			col++;
			continue;
		}
		d_value = s[col+1] - s[col-1];
		if (d_value > 0) {
			s.erase(col ,1);
			if (p1 == 1) {
				for (int i = 1; i < d_value; i++) {
					str.append(p2, char(s[col - 1] + i));
				}
			}
			else if (p1 == 2) {
				if (s[col] < 'a') {
					for (int i = 1; i < d_value; i++) {
						str.append(p2, char(s[col - 1] + i));
					}
				}
				else {
					for (int i = 1; i < d_value; i++) {
						str.append(p2, char(s[col - 1] + i - 32));
					}
				}
			}
			else if (p1 == 3) {
				for (int i = 1; i < d_value; i++) {
					str.append(p2, '*');
				}
			}
			if (p3 == 2)
				reverse(str.begin(), str.end());
			s.insert(col, str);
		}
		else
			col++;
		str = '\0';
	}
	cout << s << endl;

	return 0;
}

2021/10/16 15:21
加载中...