首页 > 代码库 > zoj能AC
zoj能AC
- 题目描述:
- 对给定的字符串(只包含‘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年浙江大学计算机及软件工程研究生机试真题
分析:
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 ****************************************************************/
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。