Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
120948 | 廖悦扬 | 字符串的展开 | C++ | 通过 | 100 | 0 MS | 272 KB | 1174 | 2024-01-21 14:04:05 |
#include <bits/stdc++.h> using namespace std; string s, ans; int p1, p2, p3; signed main() { char buffer[1024]; scanf("%d%d%d", &p1, &p2, &p3); scanf("%s", buffer); s = string(buffer); for (int i=0; i<s.size(); i++) { if (i == 0 || i == s.size()-1) { ans += s[i]; continue; } if (s[i] != '-') { ans += s[i]; continue; } if (s[i+1]-s[i-1] < 1) { ans += s[i]; continue; } if (s[i+1]-s[i-1] == 1) continue; if (!(isdigit(s[i-1])&&isdigit(s[i+1])||(isalpha(s[i-1])&& isalpha(s[i+1])))){ ans += '-'; continue; } string adds; for (int j=s[i-1]+1; j<s[i+1]; j++) { char add; if (p1 == 1) add = tolower(j); if (p1 == 2) add = toupper(j); if (p1 == 3) add = '*'; for (int k=1; k<=p2; k++) { adds += add; } } if (p3 == 2) reverse(adds.begin(), adds.end()); ans += adds; } printf("%s", ans.c_str()); return 0; }