问题来源
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 "); continue; } i++; while(s[i]=='o') { b++; i++; } if(s[i]!='j') { printf("Wrong Answer "); continue; } i++; while(s[i]=='o') { c++; i++; } if(s[i]!='