- 题目描述:
-
对给定的字符串(只包含‘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
-
来源:
分析:
AC的情况: a个o + z + b个o +j + c个o
c=a*b,且b>=1
(o^a)z(o^b)j(o^c) c=a*b,且b>=1
z,j都只有一个。且j在z之后出现,
b>=1可以保证j在z之后出现
。import java.util.*; public class Main { public static boolean check(String s) { int p=0,q=0,zp,jp,a,b,c; p=s.indexOf("z"); q=s.lastIndexOf("z"); if(p!=q) return false; if(p==-1) return false; zp=p; p=s.indexOf("j"); q=s.lastIndexOf("j"); if(p!=q) return false; if(p==-1) return false; jp=p; a=zp; b=jp-a-1; c=s.length()-jp-1; if((c==a*b) && (b>=1)) return true; return false; } public static void main(String[] args) { // TODO Auto-generated method stub String t; boolean b; Scanner scanneer = new Scanner(System.in); while (scanneer.hasNext() ) { t=scanneer.nextLine(); b=check(t); if(b) System.out.println("Accepted"); else System.out.println("Wrong Answer"); } } } /************************************************************** Problem: 1006 User: caiyunfree20 Language: Java Result: Accepted Time:930 ms Memory:27016 kb ****************************************************************/
时间: 2024-11-05 14:01:38