题目1006:ZOJ问题
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:14782
解决:2482
-
题目描述:
-
对给定的字符串(只包含‘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
-
来源:
- 2010年浙江大学计算机及软件工程研究生机试真题
- 思路:注意开始o的个数、中间o的个数、结尾o的个数,这3者之间的关系!
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner cin = new Scanner(System.in);
String str;
while(cin.hasNext())
{
str = cin.next();
int len = str.length();
int s1 = 0,s2=0,i=0;
int z1=0,j1=0;
for(i=0;i<len;i++)
{
if(str.charAt(i)=='z')
z1++;
if(str.charAt(i)=='j')
j1++;
}
if(!(z1==1&&j1==1))
{
System.out.println("Wrong Answer");
continue;
}
for(i=0;i<len;i++)
{
if(str.charAt(i)=='z')
{
s1=i;
}
if(str.charAt(i)=='j')
{
s2=i-s1-1;
break;
}
}
if(s1*s2==len-i-1&&s2!=0)
System.out.println("Accepted");
else
System.out.println("Wrong Answer");
}
cin.close();
}
}
9度oj 题目1006:ZOJ问题【递推】
原文:http://blog.csdn.net/hpuhjl/article/details/38844135