2010浙大: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

思路:找规律,字符串必须满足这个形式:azbjc(a,b,c分别代表若干个o),其中|b|>1且|a|*|b|==|c|,||代表o的个数
复制代码
 1 import java.util.*;
 2 import static java.lang.System.*;
 3 
 4 public class Main{
 5     static Scanner in = new Scanner(System.in);
 6     
 7     public static void main(String[] args)
 8     {
 9         String s;
10         while(in.hasNext())
11         {
12             s=in.next();
13             int nz=0,posz=0;
14             for(int i=0;i<s.length();i++)
15             {
16                 if(s.charAt(i)=='z')
17                 {
18                     nz++;
19                     posz=i;
20                 }
21             }
22             if(nz!=1)
23             {
24                 out.println("Wrong Answer");
25                 continue;
26             }
27             
28             int nj=0,posj=0;
29             for(int i=0;i<s.length();i++)
30             {
31                 if(s.charAt(i)=='j')
32                 {
33                     nj++;
34                     posj=i;
35                 }
36             }
37             if(nj!=1)
38             {
39                 out.println("Wrong Answer");
40                 continue;
41             }
42             if(posj<posz)
43             {
44                 out.println("Wrong Answer");
45                 continue;
46             }
47             
48             
49             int a=0,b=0,c=0;
50             for(int i=0;i<posz;i++)
51             {
52                 if(s.charAt(i)=='o')
53                     a++;
54             }
55             for(int i=posz+1;i<posj;i++)
56             {
57                 if(s.charAt(i)=='o')
58                     b++;
59             }
60             for(int i=posj+1;i<s.length();i++)
61             {
62                 if(s.charAt(i)=='o')
63                     c++;
64             }
65             if(a+b+c+nz+nj==s.length()&&b>0)
66             {
67                 if(a*b==c)
68                     out.println("Accepted");
69                 else
70                     out.println("Wrong Answer");
71             }
72             else
73                 out.println("Wrong Answer");
74         }    
75     }
76 }
复制代码

 

posted on   vCoders  阅读(255)  评论(0编辑  收藏  举报

编辑推荐:
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
阅读排行:
· 从零开始开发一个 MCP Server!
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示