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 }