CSDN编程竞赛第六期题解
CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16
(请不要删掉此地址)
1. 题目名称:严查枪火
X国最近开始严管枪火。 像是“ak”,“m4a1”,“skr”。都是明令禁止的。 现在小Q查获了一批违禁物品其中部分是枪支。 小Q想知道自己需要按照私藏枪火来关押多少人。 (只有以上三种枪被视为违法)
根据题意,即要判断给定的字符串是否等于“ak”,“m4a1”,“skr”这三个字符串。
#include <bits/stdc++.h>
using namespace std;
int main()
{int n, ans = 0;cin >> n;for (int i = 0; i < n; ++i){string s;cin >> s;if (s == "ak" || s == "m4a1" || s == "skr")++ans;}cout << ans << endl;return 0;
}
2. 题目名称:鬼画符门
鬼画符门,每年都会统计自己宗门鬼画符消耗的数量,往年一直是大师兄管理, 但是这次鬼艺接手了, 你能帮鬼艺写一个 程序统计每年消耗数量最多的鬼画符吗?
根据题意,即要统计出现最多次数的字符串,题目保证出现次数最多的字符串唯一。可以用哈希表统计每个字符串出现的次数,然后遍历哈希表记录出现次数最多的字符串。
#include <bits/stdc++.h>
using namespace std;
int main()
{int n;cin >> n;unordered_map<string, int> ump;for (int i = 0; i < n; ++i){string s;cin >> s;++ump[s];}int mx = 0;string ans = "";for (auto it = ump.begin(); it != ump.end(); ++it){if (it->second > mx){mx = it->second;ans = it->first;}}cout << ans << endl;return 0;
}
3. 题目名称:收件邮箱
已知字符串str,str表示邮箱的不标准格式。 其中”.”会被记录成”dot”,”@”记录成”at”。 写一个程序将str转化成可用 的邮箱格式。(可用格式中字符串中除了开头结尾所有”dot”,都会被转换,”at”只会被转化一次,开头结尾的不转化)
根据题意,需要把输入字符串中的“dot"转换成”.",把“at"转换成”@“,模拟即可。
#include <bits/stdc++.h>
using namespace std;
string s;
int main()
{cin >> s;int n = s.size();string ans = s.substr(0, 1);for (int i = 1; i < n; ++i){if (i + 3 < n && s[i] == 'd' && s[i + 1] == 'o' && s[i + 2] == 't'){ans += ".";i += 2;}elseans += s[i];}s = ans;n = s.size();ans = s.substr(0, 1);for (int i = 1, ok = 1; i < n; ++i){if (i + 2 < n && ok && s[i] == 'a' && s[i + 1] == 't'){ok = 0;ans += "@";++i;}elseans += s[i];}cout << ans << endl;return 0;
}
4. 题目名称:最长递增的区间长度
给一个无序数组,求最长递增的区间长度。如:[5,2,3,8,1,9] 最长区间 2,3,8 长度为 3。
题意要求的是连续区间的长度,但题目没说明递增是严格还是非严格,这里我当作严格递增做了。考虑以位置i结尾的区间的最长递增长度为dp[i],那么若a[i]>a[i-1],则dp[i] = dp[i-1] +1,表示区间左端点在i-1之前;否则dp[i] = 1表示区间[i, i]。
#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
int a[maxn], dp[maxn];
int main()
{int n;cin >> n;for (int i = 1; i <= n; ++i)cin >> a[i];int ans = 0;for (int i = 1; i <= n; ++i){if (a[i] > a[i - 1])dp[i] = dp[i - 1] + 1;elsedp[i] = 1;ans = max(ans, dp[i]);}cout << ans << endl;return 0;
}
CSDN编程竞赛第六期题解相关推荐
- CSDN编程竞赛第六期
CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 本次是我第二次参加CSDN举办的编程竞赛,这一次的题相比上一次简单不少,对编程新人或者刚开始学习 ...
- CSDN 编程竞赛十九期题解
竞赛总览 CSDN 编程竞赛十九期:比赛详情 (csdn.net) 竞赛题解 题目1.幼稚班作业 幼稚园终于又有新的作业了.老师安排同学用发给同学的4根木棒拼接成一个三角形.当然按照正常的逻辑,如果不 ...
- CSDN 编程竞赛十四期题解
竞赛总览 CSDN编程竞赛十四期:比赛详情 (csdn.net) 本次竞赛题目难度适中,并且题目的解法(思路)也比较多,很适合新人学习. 竞赛题解 题目1.字符串全排列 对K个不同字符的全排列组成的数 ...
- CSDN 编程竞赛二十七期题解
竞赛总览 CSDN 编程竞赛二十七期:比赛详情 (csdn.net) 四道题都不难,本来十分钟内就可以解决,但是这次竞赛bug比较多,体验不是很好. 竞赛题解 题目1.幸运数字 小艺定义一个幸运数字的 ...
- CSDN 编程竞赛十八期题解
竞赛总览 CSDN 编程竞赛十八期:比赛详情 (csdn.net) 感觉这次竞赛的题目有点偏数学了,尤其是第三道题,输入+输出就完事了,答案是一个数学公式. 竞赛题解 题目1.单链表排序 单链表的节点 ...
- CSDN编程竞赛 ——— 第六期
CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 文章目录 第六期竞赛题目 一.严查枪火 1.题目描述 2.代码实现 二.鬼画符门 1.题目描述 ...
- CSDN编程挑战赛第六期—题解(另附:最长上升子序列分析题解)
CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 (请不要删掉此地址) "路漫漫其修远兮,吾将上下而求索" 前言 笔者属于刚入 ...
- 【CSDN编程竞赛第六期】python详解
CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 目录 目录 前言/背景 解题思路 1.严查枪火 2.鬼画符门 3.收件邮箱 4.最长递增的区间长 ...
- 【CSDN编程竞赛 第六期】我的第一场编程竞赛。
CSDN编程竞赛报名地址:https://edu.csdn.net/contest/detail/16 第一场编程竞赛 前言 这是我第一次接触CSND的编程竞赛,一周前看到有这么个活动,觉得很有意思, ...
最新文章
- 肠菌亦“醉”人 | 中国团队登Cell子刊,发现60%的非酒精性脂肪肝与肠道菌有关,携带者体内酒精可达健康人4-6倍...
- WEB前端性能优化小结
- Linux下的buffer与cache
- 怎么查询交通银行卡的支付卡号?
- HTML、CSS 和 JS框架之Bootstrap
- es6箭头函数(墙裂推荐)
- linux测试固态硬盘读写速度,在 Linux 上检测 IDE/SATA SSD 硬盘的传输速度
- Linux的10个最危险的命令
- Anti-debugging Skills in APK
- Effective C++ 重要条款
- 塞班、libc.lib、系统错误-1、KErrNotFound、内嵌sis、embedded sis
- 径向误差、偏心误差和薄棱镜误差
- 多测师肖sir__金牌高级讲师软件测试___疑难杂症之app端口占用
- PHP对接苹果支付全流程
- oracle安装先决条件检查全部失败,两种解决办法
- 看IE9带来的新概念
- 画出有3个节点的树和有3个结点的二叉树的所有不同的形态
- 首次回收重型猎鹰火箭全部助推器,SpaceX再创历史!...
- postman 1—官网下载及安装
- 怎样把酷狗音乐wav转化成高品质的MP3格式?