九度OJ刷题——1006:ZOJ
- 题目描述:
-
对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC。
是否AC的规则如下:
1. zoj能AC;
2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或者为空;
3. 若azbjc 能AC,则azbojac也能AC,其中a,b,c为N个'o'或者为空;
- 输入:
-
输入包含多组测试用例,每行有一个只包含'z','o','j'三种字符的字符串,字符串长度小于等于1000。
- 输出:
-
对于给定的字符串,如果能AC则请输出字符串“Accepted”,否则请输出“Wrong Answer”。
- 样例输入:
-
zoj ozojo ozoojoo oozoojoooo zooj ozojo oooozojo zojoooo
- 样例输出:
-
Accepted Accepted Accepted Accepted Accepted Accepted Wrong Answer Wrong Answer
这题主要是要弄清楚Z前o的个数a和z与j之间的o的个数的乘积等于j后面o的个数。
源代码:123456789101112131415161718192021#include <iostream>
using
namespace
std;
int
main(){
char
s[1000];
while
(cin >> s){
int
a = 0, b = 0, c = 0, countZ = 0, countJ = 0;
for
(
int
i=0; i<1000; i++){
if
(s[i] ==
'\0'
)
break
;
else
if
(s[i] ==
'z'
) countZ ++;
else
if
(s[i] ==
'j'
) countJ ++;
else
if
(countZ==0 && s[i]==
'o'
) a ++;
else
if
(countZ>0 && s[i]==
'o'
&& countJ==0) b ++;
else
if
(countZ>0 && s[i]==
'o'
&& countJ>0) c ++;
}
if
(countZ==1 && countJ==1 && b>0 && (a*b==c)) cout <<
"Accepted"
<< endl;
else
cout <<
"Wrong Answer"
<< endl;
}
return
0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器