2010浙大:zoj问题
Posted vCoders
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }
以上是关于2010浙大:zoj问题的主要内容,如果未能解决你的问题,请参考以下文章