P1098 [NOIP2007 提高组] 字符串的展开(总结)
1.[P1518 [USACO2.4] 两只塔姆沃斯牛 The Tamworth Two]的解题思路
2.P1098 [NOIP2007 提高组] 字符串的展开(总结)
P1098 [NOIP2007 提高组] 字符串的展开http://ww.luogu.com.cn/problem/P1098
注意
字符中的数字是默认小于字母的。
所以要对数字做特判。
#include <iostream>
#include <string>
using namespace std;
int main() {
int p1, p2, p3;
cin >> p1 >> p2 >> p3;
string s;
cin >> s;
char start, stop;
for (int i = 0; i < s.length(); i++) {
cout << s[i];
if (s[i + 1] == '-') {
if ((s[i] < s[i + 2] - 1 && '0' <= s[i] && s[i] <= '9' && '0' <= s[i] && s[i + 2] <= '9') || (s[i] < s[i + 2] - 1
&& 'a' <= s[i] && s[i] <= 'z'
&& 'a' <= s[i + 2] && s[i + 2] <= 'z')) {
if (p1 == 1) {
if (p3 == 1) {
start = s[i] + 1;
stop = s[i + 2] - 1;
while (start <= stop) {
for (int j = 1; j <= p2; j++) {
cout << start;
}
start++;
}
i++;
} else {
start = s[i] + 1;
stop = s[i + 2] - 1;
while (start <= stop) {
for (int j = 1; j <= p2; j++) {
cout << stop;
}
stop--;
}
i++;
}
} else if (p1 == 2) {
if (s[i] < 'a') {
if (p3 == 1) {
start = s[i] + 1;
stop = s[i + 2] - 1;
while (start <= stop) {
for (int j = 1; j <= p2; j++) {
cout << start;
}
start++;
}
i++;
} else {
start = s[i] + 1;
stop = s[i + 2] - 1;
while (start <= stop) {
for (int j = 1; j <= p2; j++) {
cout << stop;
}
stop--;
}
i++;
}
} else {
if (p3 == 1) {
start = s[i] - 'a' + 'A' + 1;
stop = s[i + 2] - 'a' + 'A' - 1;
while (start <= stop) {
for (int j = 1; j <= p2; j++) {
cout << start;
}
start++;
}
i++;
} else {
start = s[i] - 'a' + 'A' + 1;
stop = s[i + 2] - 'a' + 'A' - 1;
while (start <= stop) {
for (int j = 1; j <= p2; j++) {
cout << stop;
}
stop--;
}
i++;
}
}
} else {
if (p3 == 1) {
start = s[i] + 1;
stop = s[i + 2] - 1;
while (start <= stop) {
for (int j = 1; j <= p2; j++) {
cout << '*';
}
start++;
}
i++;
} else {
start = s[i] + 1;
stop = s[i + 2] - 1;
while (start <= stop) {
for (int j = 1; j <= p2; j++) {
cout << '*';
}
stop--;
}
i++;
}
}
} else if (s[i] == s[i + 2] - 1 ) {
i++;
}
}
}
}
合集:
洛谷模拟
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?