WA于#9,也是醉了……
有没有大佬帮忙调一下谢谢
#include <bits/stdc++.h>
using namespace std;
string solve(char left, char right, int p1, int p2, int p3) {
string result = "";
if (right <= left ||
(!isdigit(left) && !islower(left)) ||
(!isdigit(right) && !islower(right)) ||
(isdigit(left) != isdigit(right))) {
return "-";
}
if (right - left == 1) {
return "";
}
for (char c = left + 1; c < right; ++c) {
char ch = (p1 == 1 || isdigit(c)) ? c : (p1 == 2 ? toupper(c) : '*');
string repeatChar(p2, ch); // 提重
result += repeatChar;
}
if (p3 == 2) {
reverse(result.begin(), result.end());
}
return result;
}
int main() {
int p1, p2, p3;
cin >> p1 >> p2 >> p3;
string s;
cin >> s;
string ans = "";
for (int i = 0; i < s.length(); ++i) {
if (i > 0 && i < s.length() - 1 && s[i] == '-') {
ans += solve(s[i - 1], s[i + 1], p1, p2, p3);
} else {
ans += s[i];
}
}
cout << ans << endl;
return 0;
}