题目1006:ZOJ问题(字符串处理)
问题来源
http://ac.jobdu.com/problem.php?pid=1006
问题描述
输入一个只包含'z','o','j'三种字符的字符串,判断是否符合要求。
问题分析
分析AC的三个条件,用a、b、c代表<a'z'b'j'c>中'o'的数量。条件一是(0,1,0),条件二是(x,1,x),把条件二代入条件三,可以得到(x,2,2x)满足条件,继续代入会有(x,3,3x)...
于是我们发现一个问题,那就是a*b=c,注意b>0。
注意事项:
①:判断字符串里面只有一个z一个j,且z在j后面。
②:中间有任何不符合要求的直接结束即可。
参考代码
// // Created by AlvinZH on 2017/4/27. // Copyright (c) AlvinZH. All rights reserved. // #include <iostream> #include <cstdio> #include <algorithm> using namespace std; int main() { char s[1005]; int a,b,c; while(scanf("%s",s)!=EOF) { a=0; b=0; c=0; int i=0; while(s[i]=='o') { a++; i++; } if(s[i]!='z') { printf("Wrong Answer\n"); continue; } i++; while(s[i]=='o') { b++; i++; } if(s[i]!='j') { printf("Wrong Answer\n"); continue; } i++; while(s[i]=='o') { c++; i++; } if(s[i]!='\0') { printf("Wrong Answer\n"); continue; } if(a*b==c&&b>0) printf("Accepted\n"); else printf("Wrong Answer\n"); } }
作者: AlvinZH
出处: http://www.cnblogs.com/AlvinZH/
本人Github:https://github.com/Pacsiy/JobDu
本文版权归作者AlvinZH和博客园所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.