1 条题解
-
0
C :
#include <stdio.h> #include <string.h> #define SIZE 1000 int main() { char line[SIZE]; while(1) { if(scanf("%s",line)==EOF) { break; } int len =strlen(line); int inz=strchr(line,'z')-line; int inj=strchr(line,'j')-line; if(inj<0||inz<0) { printf("Wrong Answer\n"); continue; } int count=inj-inz-1; int flag=0; if(count>=1) { for(int i=inj+1;i<len;i++) { if(line[i]!='o') { flag=1; break; } } for(int i=inz+1;i<inj;i++) { if(line[i]!='o') { flag=1; break; } } if(flag==1) { printf("Wrong Answer\n"); continue; } int result=len-inj-1; for(int i=count;i>=1;i--) { result=result-inz; if(result<=0) { break; } } if(result!=0) { printf("Wrong Answer\n"); } else if(result==0) { printf("Accepted\n"); } } else if(count<1) { printf("Wrong Answer\n"); } } }
C++ :
#include <stdio.h> bool Judge(char *str){ // 判断字符串是否符合要求 int oBeforeZ=0, oMid=0, oAfterJ=0; // 分别存储 z 前面、z 与 j 之间以及 j 之后的o的数目。 int i = 0; while(str[i] && str[i]=='o'){ // 计算 z 之前的 o 的数目,这里注意不能超出字符串边界(用 str[i]来判断,下同) i++; oBeforeZ++; } if(str[i] != 'z'){ // 如果第一次遍历 o 结束后的字符不是 z 则不符合要求 return false; } i++; while(str[i] && str[i]=='o'){ // 计算 z 与 j 之间 o 的数目 i++; oMid++; } if(!oMid || str[i]!='j'){ // 如果中间没有 o 或者中间 o 之后的字符不是 j,则不符合 return false; } i++; while(str[i] && str[i]=='o'){ // 计算 j 之后 o 的数目 i++; oAfterJ++; } if(str[i]){ // 如果 j 之后的 o 都统计完了还没有到达字符串结尾,则不符合 return false; } return oBeforeZ*oMid == oAfterJ; // 只有 z 前面 o 的数目与中间 o 数目的乘积与 j 后面 o 的数目相同,才符合 } int main(){ char str[1100]; // 用来读入字符串 while(scanf("%s", str) != EOF){ puts(Judge(str) ? "Accepted" : "Wrong Answer"); } return 0; }
Java :
import java.util.*; public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); while(in.hasNext()){ String str = in.next(); int n = str.length(); int z = str.indexOf("z"); int j = str.indexOf("j"); int countz = 0, countj = 0; for(int i=0;i<str.length();i++) if(str.charAt(i)=='z') countz++; else if(str.charAt(i)=='j') countj++; if(countz!=1||countj!=1) System.out.println("Wrong Answer"); else if(z>j) System.out.println("Wrong Answer"); else if(str.charAt(0)=='z'&&str.charAt(1)=='j'){ System.out.println("Wrong Answer"); } else{ String[] strarray = str.split("z|j"); int a = strarray[0].length(), b = strarray[1].length(), c = 0; if(str.charAt(n-1)=='o') c = strarray[2].length(); if(b==0) System.out.println("Wrong Answer"); else if(c/b==a) System.out.println("Accepted"); else System.out.println("Wrong Answer"); } } } }
- 1
信息
- ID
- 1737
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者