Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
120948 廖悦扬 字符串的展开 C++ 通过 100 0 MS 272 KB 1174 2024-01-21 14:04:05

Tests(10/10):


#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; }


测评信息: