欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

九度oj 1006 ZOJ问题 2010年浙江大学计算机及软件工程研究生机试真题

发布时间:2025/3/13 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 九度oj 1006 ZOJ问题 2010年浙江大学计算机及软件工程研究生机试真题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题目1006:ZOJ问题

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:16244

解决:2742

题目描述:
对给定的字符串(只包含'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年浙江大学计算机及软件工程研究生机试真题

分析:

2种情况输出"Accepted":

1."zoj"

2."xzo..ojx..x"(其中中间o的个数=末尾x的个数)

技巧:找到第一个'z'的位置和第一个'j'的位置,就可以就可以算出第一个'z'和第一个'j'之间的'o'的个数(就是末尾x的个数)

然后构造string s1="xzo..ojx..x"与原字符串比较

 

substr用法:s.substr(a,b)  返回s[a]开始的(包括s[a])长b的字符串

http://baike.baidu.com/link?url=sNCZ2LsYgl82zQXh6xKA51dUV_sZRVh9tvrwDBMpqkzJ8IP6rv5JwVy8NNdY_5qZcRVOCQ3Z6GH8ZYNI7E5ctNnBkd_ZURxza5tLXzq9l8O

1 #include <cstdio> 2 #include<algorithm> 3 #include<iostream> 4 #include<string> 5 #include<cstring> 6 #include<vector> 7 using namespace std; 8 int main() 9 { 10 string s; 11 while(cin>>s){ 12 string x; 13 if(s=="zoj"){ 14 cout<<"Accepted"<<endl; 15 continue; 16 } 17 int i=0; 18 int tz=-1,tj=-1; 19 for(;i<s.length();i++){ 20 if(s[i]=='z'&&tz==-1){ 21 tz=i; 22 } 23 else{ 24 if(s[i]=='j'&&tj==-1){ 25 tj=i; 26 } 27 } 28 } 29 int num=tj-tz-1; 30 if(num>0){ 31 x=s.substr(0,tz); 32 /*for(i=0;i<tz;i++){ 33 if(s[i]!='o') 34 break; 35 } 36 if(i!=tz){ 37 cout<<"Wrong Answer"<<endl; 38 continue; 39 } 40 for(i=tz+1;i<tj;i++){ 41 if(s[i]!='o') 42 break; 43 } 44 if(i!=tj){ 45 cout<<"Wrong Answer"<<endl; 46 continue; 47 }*/ 48 string s1=x+'z'; 49 for(i=0;i<num;i++){ 50 s1+='o'; 51 } 52 s1+='j'; 53 for(i=0;i<num;i++){ 54 s1+=x; 55 } 56 if(s1==s){ 57 cout<<"Accepted"<<endl; 58 continue; 59 } 60 } 61 cout<<"Wrong Answer"<<endl; 62 } 63 return 0; 64 }

 

转载于:https://www.cnblogs.com/Deribs4/p/4291299.html

总结

以上是生活随笔为你收集整理的九度oj 1006 ZOJ问题 2010年浙江大学计算机及软件工程研究生机试真题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。