1309游客统计

描述

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

 

输入

一行一个字符串,全都有O和I这两组字符组成。

 

【数据范围限制】

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

 

输出

最多在馆的人数。

 

输入样例 1 

IIIOOIIOIOOO

输出样例 1

3

这一题挺简单的,我第一眼看到的时候就想到了解法。输入一个字符串,从头开始循环读取。如果当前这一位是I,则s++,是O则s--。定义一个记录最大在馆人数的变量,清零。每循环一次就判断,如果s>这个变量就把s的值付给这个变量。最后输出最大在馆人数。

代码:
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     string a;
 6     int s=0,maxn=-1;
 7     cin>>a;
 8     for(int i=0;i<a.size();i++)
 9     {
10         if(a[i]=='I') s++;
11         if(a[i]=='O') s--;
12         if(s>maxn) maxn=s;
13     }
14     cout<<maxn;
15     return 0;
16 }

 

 
posted @ 2021-06-06 16:55  knbit  阅读(143)  评论(0编辑  收藏  举报