zzulioj--1813--good string(模拟)
1813: good string
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 93 Solved: 15
SubmitStatusWeb
Board
Description
给定一个字符串,判断它是否是good string。
good string定义为:
① 字符s是good string,字符p是good string,字符y也是good string
② P和Q都是good string,则PQ是good string
③ P是good string,则(P)是good string
④ P是good string,则!P是good string
⑤ P和Q都是good string,则P|Q和P&Q是good string
Input
输入包含多组数据。每组数据为一行字符串,长度不超过100。
Output
对于每组数据,如果P是good string则输出"P is a good string",否则输出"P is not a good string"。
Sample Input
Sample Output
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char str[10010];
int main()
{
while(scanf("%s",str)!=EOF)
{
int len=strlen(str);
int l=0,r=0;
bool flog=true;
for(int i=0;i<len;i++)
{
if(str[i]=='s')
continue;
else if(str[i]=='p')
continue;
else if(str[i]=='y')
continue;
else if(str[i]=='!')
{
if(str[i+1]==')'||i==len-1)
{
flog=false;
break;
}
}
else if(str[i]=='(')
{
l++;
if(i==len-1)
{
flog=false;
break;
}
if(str[i+1]==')')
{
flog=false;
break;
}
}
else if(str[i]==')')
{
r++;
if(i==0||r>l)
{
flog=false;
break;
}
if(str[i-1]!='p'&&str[i-1]!='s'&&str[i-1]!='y'&&str[i-1]!=')')
{
flog=false;
break;
}
}
else if(str[i]=='&')
{
if(i==0)
{
flog=false;
break;
}
if(str[i+1]=='('||str[i+1]=='y'||str[i+1]=='s'||str[i+1]=='p'||str[i+1]=='!');
else
{
flog=false;
break;
}
if(str[i-1]=='s'||str[i-1]==')'||str[i-1]=='y'||str[i-1]=='p');
else
{
flog=false;
break;
}
}
else if(str[i]=='|')
{
if(i==0)
{
flog=false;
break;
}
if(str[i+1]=='('||str[i+1]=='y'||str[i+1]=='s'||str[i+1]=='p'||str[i+1]=='!');
else
{
flog=false;
break;
}
if(str[i-1]=='s'||str[i-1]==')'||str[i-1]=='y'||str[i-1]=='p');
else
{
flog=false;
break;
}
}
else
{
flog=false;
break;
}
}
if(r!=l)
{
flog=false;
}
printf("%s",str);
if(flog)
printf(" is a good string\n");
else
printf(" is not a good string\n");
memset(str,'\0',sizeof(str));
}
return 0;
}
zzulioj--1813--good string(模拟)的更多相关文章
- B. Obtaining the String(模拟)
比较水的模拟 思路:就是模拟题意 注意:把数组开大点,开始wa了几次就是这个原因 #include<iostream> #include<string> #include< ...
- STL string 模拟
下面的代码来自c++ primer plus第5版第12章,书中代码写的非常好: // string1.h -- fixed and augmented string class definition ...
- Codeforces-B-Game with string(模拟栈)
Two people are playing a game with a string ss, consisting of lowercase latin letters. On a player's ...
- HDOJ 5414 CRB and String 模拟
CRB and String Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) T ...
- [agc007f] Shik and Copying String 模拟神题
Description "全"在十分愉快打工,第0天,给了他一个仅有小写字母构成的长度为N的字符串S0,在之后的第i天里,"全"的工作是将Si−1复制一份到 ...
- Codeforce-CodeCraft-20 (Div. 2)-B. String Modification (找规律+模拟)
Vasya has a string s of length n. He decides to make the following modification to the string: Pick ...
- 【翻译】为什么Java中的String不可变
笔主前言: 众所周知,String是Java的JDK中最重要的基础类之一,在笔主心中的地位已经等同于int.boolean等基础数据类型,是超越了一般Object引用类型的高端大气上档次的存在. 但是 ...
- 牛客多校训练第八场G.Gemstones(栈模拟)
题目传送门 题意: 输入一段字符串,字符串中连续的三个相同的字符可以消去,消去后剩下的左右两段字符串拼接,求最多可消去次数. 输入:ATCCCTTG 输出:2 ATCCCTTG(消去CCC)——& ...
- 北京师范大学第十五届ACM决赛-重现赛C Captcha Cracker (字符串模拟)
链接:https://ac.nowcoder.com/acm/contest/3/C 来源:牛客网 Captcha Cracker 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 26 ...
随机推荐
- WinServer-IIS-FTP服务器
在设置FTP服务器的时候,注意SSL的设置,简单尝试的话,不需要启用SSL 常用FTP命令 ftp 进入FTP命令模式 open 192.168.10.6 (连接到FTP主机,或者open ...
- ubuntu下使用Nexus搭建Maven私服
ubuntu下使用Nexus搭建Maven私服 1.私服简介: 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服, ...
- 极路由4pro(HC5962)安装python
基本配置 其实极路由4.极路由4 pro.极路由B70都是一个型号的(HC5962) CPU:MT7621AT + MT7612EN + 7603EN 内存:256MB DDR3 RAM 闪存:128 ...
- [using_microsoft_infopath_2010]Chapter6 发布提交表单数据
本章概要: 1.使用正确的方法发布表单 2.发布表单画库到SharePoint 3.在发布和保存表单之间做出选择 4.理解不同发布表单方式之间的区别
- volatile 和 mutable 关键字
经常接触,但是过一段时间可能又忘了.做个记录. volatile是表示变量易变,不要放缓存,每次实际取,尤其是多线程. mutable表示一个const 类或者数据结构里面,某个字段是可以改变的.
- ZOJ 3556
终于做出来了,激动.... 这道题隐藏得深啊,但若推导下来,就变简单了. 首先,一个集合的子集的个数为2^n=s.注意了,题目求的是有序集合组,并且每个集合是可以重复使用的,怎么办呢?这就要想到多重集 ...
- word2vec词向量训练及中文文本类似度计算
本文是讲述怎样使用word2vec的基础教程.文章比較基础,希望对你有所帮助! 官网C语言下载地址:http://word2vec.googlecode.com/svn/trunk/ 官网Python ...
- UVA 11971 - Polygon 数学概率
Polygon John has been given a segment of lenght N, however he n ...
- yolo环境配置
主要配置参考官网https://pjreddie.com/darknet/yolo/ 为了能够可视化,另安装cuda+opencv cuda版本为9.0 opencv版本为3.1.0 先安装cuda再 ...
- caffe中lenet_solver.prototxt配置文件注解
caffe框架自带的例子mnist里有一个lenet_solver.prototxt文件,这个文件是具体的训练网络的引入文件,定义了CNN网络架构之外的一些基础参数,如总的迭代次数.测试间隔.基础学习 ...