zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    如何查找并启动 Reporting Services 工具
    数据压缩技术
    压缩算法
    新版压缩库发布
    如何处理海量数据
    安卓手机获得Root权限
    安卓项目的源码
    压缩算法1
    ODBC, OLEDB, ADO, ADO.Net的演化简史
    C# 文件压缩与解压(ZIP格式)
  • 原文地址:https://www.cnblogs.com/program-ccc/p/5322524.html
Copyright © 2011-2022 走看看