Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
118205 | 彭士宝 | 字符串展开 | C++ | Wrong Answer | 1 MS | 280 KB | 1993 | 2025-04-26 11:03:29 |
#include <iostream> #include <string> #include <algorithm> using namespace std; // 用于生成展开后的字符串 string expand(char start, char end, int p1, int p2, int p3) { string result; // 如果减号右边的字符恰好是左边字符的后继,只删除中间的减号 if (end == start + 1) { return string(1, start) + string(1, end); } // 如果减号右边的字符小于或等于左边字符,保留减号 if (end <= start) { return string(1, start) + "-" + string(1, end); } // 生成中间的字符序列 for (char c = start + 1; c < end; ++c) { if (p1 == 1) { // 填充小写字母或数字 result += string(p2, c); } else if (p1 == 2) { // 填充大写字母或数字 if (isalpha(c)) { result += string(p2, toupper(c)); } else { result += string(p2, c); } } else if (p1 == 3) { // 填充星号 result += string(p2, '*'); } } // 如果需要逆序 if (p3 == 2) { reverse(result.begin(), result.end()); } // 添加起始和结束字符 return string(1, start) + result + string(1, end); } int main() { int p1, p2, p3; cin >> p1 >> p2 >> p3; string input; cin >> input; string result; int n = input.length(); int i = 0; while (i < n) { if (i + 2 < n && input[i + 1] == '-' && ((islower(input[i]) && islower(input[i + 2])) || (isdigit(input[i]) && isdigit(input[i + 2])))) { // 满足展开条件 result += expand(input[i], input[i + 2], p1, p2, p3); i += 3; // 跳过已处理的三个字符 } else { // 不满足展开条件,直接添加当前字符 result += input[i]; ++i; } } cout << result << endl; return 0; }
------Input------
2 8 2 --09-8-w-er-7h-08w-e7-hc-r890-q7w-eh-rc98-07-q8-ewr-8h-c-8-294-5-dsf--k-h-2-48-3k-h-sd-fq-a-
------Answer-----
--09-8-w-er-7h-08w-e7-hcQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIHHHHHHHHGGGGGGGGFFFFFFFFEEEEEEEEDDDDDDDDr890-q7w-ehQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIrc98-07-q8-ewr-8h-c-8-2945-dsf--k-h-23333333348-3k-hRRRRRRRRQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIsdEEEEEEEEfq-a-
------Your output-----
--09-8-w-er-7h-08w-e7-hcQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIHHHHHHHHGGGGGGGGFFFFFFFFEEEEEEEEDDDDDDDDr890-q7w-ehQQQQQQQQPPPPPPPPOOOOOOOONNNNNNNNMMMMMMMMLLLLLLLLKKKKKKKKJJJJJJJJIIIIIIIIrc98-07-q8-ewr-8h-c-8-2945-dsf--k-h-23333333348-3k-h-sdEEEEEEEEfq-a-