zoukankan      html  css  js  c++  java
  • 题目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<string>
    using namespace std;
    bool isLegal(string str);
    int main()
    {
    	string str;
    	while(cin>>str)
    	{
    		if(isLegal(str))
    			cout<<"Accepted"<<endl;
    		else
    			cout<<"Wrong Answer"<<endl;
    
    	}
    	return 0;
    }
    bool isLegal(string str)
    {
    	int len=str.length();
    	if(len<3)return false;
    	if(str[0]=='z')
    	{
    		if(str[len-1]=='j'){
    			for(int i=1;i<len-1;i++)
    			{
    				if(str[i]!='o')return false;
    			}
    			return true;
    		}else
    			return false;
    	}else if(str[0]=='o')
    	{
    		int count1=str.find("z");
    		int count2=str.find("j");
    		for(int i=0;i<count1;i++)
    			if(str[i]!='o')
    				return false;
    		for(int i=count1+1;i<count2;i++)
    			if(str[i]!='o')
    				return false;
    		for(int i=count2+1;i<len;i++)
    			if(str[i]!='o')
    				return false;
    		if(count1*(count2-count1-1)!=len-count2-1)
    			return false;
    		return true;
    	}
    	return false;
    }
    

    极简,专注,速度,极致
  • 相关阅读:
    让flask在出现语法错误时仍然自动重启
    ubuntu配置zsh和oh-my-zsh
    docker运行python3.6+flask小记
    vscode python3 配置生成任务
    从flask视角理解angular(四)Route
    从flask视角理解angular(三)ORM VS Service
    从flask视角理解angular(二)Blueprint VS Component
    从flask视角学习angular(一)整体对比
    Linux高级变量
    linux系统中查看日志及系统信息
  • 原文地址:https://www.cnblogs.com/simplelifestyle/p/3761887.html
Copyright © 2011-2022 走看看