题解 CF721A 【One-dimensional Japanese Crossword】
发现我的评测是最快的!465ms
题目看得迷迷糊糊,看了样例就懂了,原本是想把答案存到数组,突然想起了 stringstream
,直接把答案放在那里最后输出呗!
然后我又想,第一个读入不是没有用吗?为啥不用 scanf(%*d);
把它吞了呢?
但是碰到这种题目有一点要考虑!如果一直是 B
,那循环完根本没有统计过,所以我们在读入的字符串后面加一个 W
,这样就可以在最后再统计一遍啦!
代码:
#include <iostream>
#include <sstream>
#include <cstdio>
#include <string>
using namespace std;
int main()
{
stringstream ans;
string s;
scanf("%*d");
cin >> s;
s.push_back('W'); // 最好用自带函数,不然可能会RE
int len = s.length() - 1, cnt = 0, now_black = 0;
for (register int i = 0; i <= len; i++)
{
if (s[i] == 'B') now_black++;
else
{
if (now_black == 0) continue;
cnt++;
ans << now_black;
ans << " ";
now_black = 0;
}
}
ans << '\n';
cout << cnt << endl << ans.str();
system("pause");
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现