• 题目1006:ZOJ问题


    题目描写叙述:
    对给定的字符串(仅仅包括'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

    #include <iostream>
    #include <cstring>
    #include <stdio.h>
    
    using namespace std;
    
    bool accept1(char str[])
    {
        int i = 0;
        bool isZ = false;
        bool isO = false;
        bool isJ = false;
        while(str[i])
        {
            if(i == 0 && str[i] == 'z')
                isZ = true;
            if(i == 1 && str[i] == 'o')
                isO = true;
            if(i == 2 && str[i] == 'j')
                isJ = true;
            i++;
        }
        if(isZ && isO && isJ && i == 3)
            return true;
        else
            return false;
    }
    //xzojx
    bool accept2(char str[])
    {
        int i = 2;
        bool flag = false;
        if(str[0] && str[1])
        {
            while(str[i])
            {
                if(str[i] == 'j' && str[i - 1] == 'o' && str[i - 2] == 'z')
                {
                    int cishu = i -2 ;
                    bool is_equal = true;
                    int j =0;
                    for(; j < cishu; j++)
                    {
                        if(str[j] == 'o' && str[i+1+j] == 'o')
                            continue;
                        else
                        {
                            is_equal = false;
                            break;
                        }
                    }
                    if(is_equal && !str[j+i+1])
                    {
                        flag = true;
                        break;
                    }
                }
                i++;
            }
        }
        return flag;
    
    }
    // azbojac  oozoojoooo
    bool accept3(char str[])
    {
        int i = 0;
        int a=0,b=0,c=0;
        int numZ =0,numJ=0;
        bool hasZ = false,hasO = false,hasJ = false;
        bool flag = false;
    
        while(str[i])
        {
            if(str[i] == 'z' )
            {
                numZ++;
                hasZ = true;
            }
            if(str[i] == 'j')
            {
                numJ++;
                hasJ = true;
            }
    
            if(!hasZ && str[i] == 'o')
                a++;
            if(hasZ && !hasJ && str[i] == 'o')
                b++;
            if(hasZ && hasJ && str[i] == 'o')
                c++;
            i++;
        }
        if(numJ == 1 && numZ == 1)
        {
            if(2*a == c && b >= 1)
                flag = true;
        }
    
        return flag;
    
    }
    int main()
    {
    
        char str[1000];
        //string str;
        while(scanf("%s",str) != EOF)
        {
            if(accept1(str) || accept2(str) || accept3(str))
            {
                printf("%s
    ","Accepted");
            } else
            {
                printf("%s
    ","Wrong Answer");
            }
        }
    }
    



  • 相关阅读:
    python 基础(三) list 的用法
    python 基础(二) string 的用法
    python 基础(四)购物车(list类型练习)
    python 基础(一)猜年龄游戏
    centOS 7 环境搭建之安装 python 3
    centOS 7 环境搭建之安装 JDK 8
    源代码管理相关命令(Git常用命令、Nuget常用命令、CMD常用命令)
    .Net Core 3.0 关于Windows Form和WPF的全面支持
    .Net Core 常用开发工具(IDE和运行时、Visual Studio插件、Visual Studio Code插件)
    .Net Core 精选公众号集合(保持更新)
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6940331.html
Copyright © 2020-2023  润新知