NC16644【字符串的展开】
正确代码:
#include <iostream>
#include <algorithm>
using namespace std;
bool IsSame(char a, char b)
{
if(a<='9'&&a>='0'&&b<='9'&&b>='0')
{
return 1;
}
else if (a <= 'z' && a >= 'a' && b <= 'z' && b >= 'a')
{
return 1;
}
return 0;
}
int main(void)
{
int p1, p2, p3;
string str, t;
char k;
cin >> p1 >> p2 >> p3;
cin >> str;
int i = 0, j = 0;
while (str[i] != '\0')
{
if (str[i] != '-')
{
cout << str[i];
}
else if (str[i] == '-' && i - 1 >= 0 && i + 1 < str.length())
{
if (str[i - 1] >= str[i + 1] || !IsSame(str[i-1],str[i+1]))
cout << str[i];
else if (str[i - 1] + 1 < str[i + 1] && IsSame(str[i-1],str[i+1]))
{
if (p1 == 2 && str[i - 1] <= 'z' && str[i - 1] >= 'a')
{
for (k = str[i - 1] + 1;k < str[i + 1];k++)
{
for (int x = 0;x < p2;x++)
{
t += k - 'a' + 'A';
}
}
}
else if (p1 == 3)
{
for (k = str[i - 1] + 1;k < str[i + 1];k++)
{
for (int x = 0;x < p2;x++)
{
t += '*';
}
}
}
else
{
for (k = str[i - 1] + 1;k < str[i + 1];k++)
{
for (int x = 0;x < p2;x++)
t += k;
}
}
if (p3 == 2)
{
reverse(t.begin(), t.end());
}
cout << t;
t = "";
}
}
else
cout << str[i];
i++;
}
}
错误代码:
#include <iostream>
#include <algorithm>
using namespace std;
int main(void)
{
int p1, p2, p3;
string str, t;
char k;
cin >> p1 >> p2 >> p3;
cin >> str;
int i = 0, j = 0;
while (str[i] != '\0')
{
if (str[i] != '-')
{
cout << str[i];
}
else if (str[i] == '-' && i - 1 >= 0 && i + 1 < str.length())
{
if (str[i - 1] >= str[i + 1]||str[i - 1]+26<str[i+1])
cout << str[i];
else if (str[i - 1] + 1 < str[i + 1] && str[i - 1]+26>str[i+1])//此处错误
{
if (p1 == 2 && str[i - 1] <= 'z' && str[i - 1] >= 'a')
{
for (k = str[i - 1] + 1;k < str[i + 1];k++)
{
for (int x = 0;x < p2;x++)
{
t += k - 'a' + 'A';
}
}
}
else if (p1 == 3)
{
for (k = str[i - 1] + 1;k < str[i + 1];k++)
{
for (int x = 0;x < p2;x++)
{
t += '*';
}
}
}
else
{
for (k = str[i - 1] + 1;k < str[i + 1];k++)
{
for (int x = 0;x < p2;x++)
t += k;
}
}
if (p3 == 2)
{
reverse(t.begin(), t.end());
}
cout << t;
t = "";
}
}
else
cout << str[i];
i++;
}
}
总结:考虑以下可能:① --- ,② -a-d- ,③ -1-a- ④ -d-a ,这些是式子不变,直接输出,然而为了排掉 数字 - 字母 ,选择用str[i-1]+26>str[i+1],因为 Asc(9)+26 < Asc(a),Asc(0)+26 > Asc(9) ,因此觉得可以用于判断 数字 - 字母 的组合,但是忽略了 -的ASCII为45 ,Asc(-)+26 > Asc(0),因此 6--0未通过测试
NC16644【字符串的展开】的更多相关文章
- AC日记——字符串的展开 openjudge 1.7 35
35:字符串的展开 总时间限制: 1000ms 内存限制: 65536kB 描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h ...
- TYVJ P1053 字符串的展开 Label:字符 水
背景 NOIP2007年提高组第2道 描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或“4-8”的子串,我们就把它当作一种简 ...
- Luogu 1098 - 字符串的展开 - [字符串操作][模拟]
题目链接:https://www.luogu.org/problemnew/show/P1098 题目描述在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中 ...
- 洛谷P1098 字符串的展开【字符串】【模拟】
题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数 ...
- C语言 · 字符串的展开
算法训练 字符串的展开 时间限制:1.0s 内存限制:256.0MB 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d ...
- noip200706字符串的展开
试题描述: 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母获 ...
- 洛谷 P1098 字符串的展开
题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数 ...
- 洛谷P1098 字符串的展开
P1098 字符串的展开 题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输 ...
- 洛谷——P1098 字符串的展开
P1098 字符串的展开 题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输 ...
- 洛谷—— P1098 字符串的展开
https://www.luogu.org/problem/show?pid=1098 题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类 ...
随机推荐
- 苹果iPhone 日历查询功能异常
2022年底苹果发布了IOS16.2版本系统,此时间段内所有升级的用户都将会出现日历查询功能失效,字符错乱等诸多问题. 与客服沟通后告知,日历记录内容查询是没有时间限制的,可以无限期查询全部内容,于是 ...
- 修复gitlab权限(docker方式搭建)
docker exec -it gitlab update-permissions docker restart gitlab
- 创建一个spring项目
- allure+junit5遇到的一些问题
java+junit5+allure 之前引testng,还比较顺利,见上一篇博客,然后testng的注解和junit不一样,感觉junit5更好用一些,所以尝试java+junit5+allure ...
- MavenDependencies 报错缺少jar包
1.首先看你的工程是否是maven项目,如果不是,则先转换为maven项目. 如果已经是maven项目了,maven的依赖库无法添加,则移步2: 2.项目右键,选择maven,然后子菜单,选择&quo ...
- mysql窗口函数
使用MySQL开窗函数之前一定先确定当前数据库版本是否支持,因为只有MySQL8.0以上的版本才支持开窗函数 用navicat如何查看MySQL的版本的方法: 在出现的界面输入命令 select v ...
- Python爬取三国演义章节标题和内容(bs4爬取,解决中文乱码)
import os.path import requests from bs4 import BeautifulSoup if __name__ == '__main__': if not os.pa ...
- Canvas布局下使用附加属性使控件岁鼠标移动
定义附加属性 public class MoveBehavior { public static readonly DependencyProperty IsMoveAbleProperty = De ...
- ue4中动画通知的几种方式
原创:蝶泳奈何桥 animation blueprint中的几种notify,神马通知碰撞开启关闭的东东都可以使用notify 1.简单的通知(blueprint) 直接在sequence or mo ...
- 【杂项】瞎玩——suhr RIOT单块制作流程
难得的周末,在家上课似乎丝毫没有轻松多少,然而专业课任务的ddl远在天边,上午赶赶进度似乎稍微闲下来了点,正好前几天找电路的时候看到一个非常nice的效果器制作网站,国内少有深入研究效果器电路的文章, ...