题目描述:
-
对给定的字符串(只包含’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”。
#include "stdio.h" #include "string.h" int checkstring(char *str); int main() { char ch[100]; while(scanf("%s",ch)!=EOF) { if(checkstring(ch)) printf("Accepted\n"); else printf("Wrong Answer\n"); } return 0; } int checkstring(char *str) { int temp=strlen(str); int i=0,j=temp-1; while(str[i++]=='o'&&i<temp) ;//获取z的位置 while(str[j--]=='o'&&j>=0); //获取j的位置 if(i<=(temp-1-j)&&str[i-1]=='z'&&str[j+1]=='j') //开头o的个数不大于和结尾o的个数 { for(int t=i;t<=j;t++) { if(str[t]!='o') return 0; } return 1; } return 0; }
测试:输入:zoj 输出:Acceptedozojo Acceptedoozoojoo Accepted
本文介绍了一种用于判断特定字符串是否符合预设规则的算法。该算法通过检查字符串中字符‘z’, ‘o’, 和‘j’的排列组合来确定字符串是否能够被接受。文章详细解释了算法的工作原理,并提供了具体的实现代码及测试案例。

被折叠的 条评论
为什么被折叠?



