游客统计------I表示有一个人进入漫画馆,O表示一个人离开漫画馆。馆长希望知道这天最多有多少个游客同时在馆里面参观,你能帮助馆长解决这个问题吗?

【题目描述】
中山漫画馆是很多小朋友喜欢去游玩的地方,为了方便统计游客的数量,在漫画馆的出入口设置了一些装置用来记录游客进出的情况。某天漫画馆关门的时候用来统计游客数据的机器突然坏了,现在只知道整天出入漫画馆的情况,由一串I和O的代码来表示,I表示有一个人进入漫画馆,O表示一个人离开漫画馆。馆长希望知道这天最多有多少个游客同时在馆里面参观,你能帮助馆长解决这个问题吗?

【输入格式】
一行一个字符串,全都有O和I这两组字符组成。

【输出格式】
最多在馆的人数。

【输入样例】
IIIOOIIOIOOO

【输出样例】
3

【数据范围】
对于50%的数据,字符串长度小于200
对于100%的数据,字符串长度小于10000
保证在馆人数不会出现负数。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	/* ————输入一个字符串,从头开始循环读取。如果当前这一位是I,则s++,是O则s--。
	定义一个记录最大在馆人数的变量,清零。每循环一次就判断,
	如果s>这个变量就把s的值付给这个变量。最后输出最大在馆人数。	
		IIOII
     S :12123
   maxn:12223  
		3
	*/

	freopen("access.in","r",stdin);
	freopen("access.out","w",stdout);
    string a;//查一下C++的字符串 
    int s=0,maxn=0;  //判断是否大于负一  -------赋值为0也可以判断 
    cin>>a;
    for(int i=0;i<a.size();i++)
    {
        if(a[i]=='I') s++;
        if(a[i]=='O') s--;
        if(s>maxn) //是否大于-1  然后往后maxn会赋值,  -------赋值为0也可以判断 
		maxn=s;
    }
    if(maxn>0)
	{
		cout<<maxn;
	 }
	 else //等0也是人数负数,因为不可能空管还能少人的,最少要1个人 
	 {
	 	cout<<"在馆人数出现负数";
	} 
    
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值