Codeforces Round #158 (Div. 2)
发布日期:2021-06-30 15:14:38 浏览次数:2 分类:技术文章

本文共 1048 字,大约阅读时间需要 3 分钟。

题意还算好理解,给定一字符串,里边只包含数字和-号,输出里边出现次数最多的日期。注意这里的日期必须是规定的格式dd-mm-yyyy,每个月具体到哪天的时候不应该超过当月总共的天数,如4月就不应该有31号,2月不应该有30号等。学会map的使用。

代码如下:

#include#include
#include
using namespace std;bool check(string s){ map
md; md["01"] = 31; md["02"] = 28; md["03"] = 31; md["04"] = 30; md["05"] = 31; md["06"] = 30; md["07"] = 31; md["08"] = 31; md["09"] = 30; md["10"] = 31; md["11"] = 30; md["12"] = 31; int days = (s[0] - '0') * 10 + (s[1] - '0'); if (md[s.substr(3, 2)] < days || days == 0) return 0; if (s[2] != '-' || s[5] != '-' || !isdigit(s[0]) || !isdigit(s[1]) || !isdigit(s[3]) || !isdigit(s[4]) || !isdigit(s[6])) return 0; s = s.substr(6); return (s == "2013") || (s == "2014") || (s == "2015");}int main(){ string s, ss; cin >> s; int i,m=0,l = s.length(); map
md; for (i = 0; i + 10 <=l; i++) { string tmp = s.substr(i, 10); if (check(tmp)) { int mm = ++md[tmp]; if (mm > m) m = mm, ss = tmp; } } cout << ss << endl; return 0;}
后边我会写一篇map的总结,慢慢掌握map、set等的使用。不断积累,总结进步。

转载地址:https://jianzhuwang.blog.csdn.net/article/details/45221731 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Codeforces Round #157 (Div. 2)
下一篇:C++ STL中stack/queue的使用

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月16日 12时25分42秒