-
题目描述:
-
对给定的字符串(只包含'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
****************************************************************/