CF245E题解

第一眼看还以为是DP呢。

仔细一看,原来是道水题。

题意

给定一个带有 “+” 与 “-“ 的字符串,表示这个叫做 “Binary Cat” 的咖啡厅的人进出情况。

现在你是个保安,你要根据给你的字符串求出你见到了多少人。

“+” 代表进入;”-“ 代表出去。

思路

用两个变量来存在咖啡厅中与咖啡厅外的人,根据题意模拟:

如果读到 “+” 则有一个原本在咖啡厅外的人进入了咖啡厅。

反之,读到 “-“ 则有一个原本在咖啡厅内的人出了咖啡厅。

特别地,我们需要注意,在一开始,咖啡厅内或外可能出现没人的情况,则是新来的人

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
string s;
int main(){
cin.tie(0);
cout.tie(0);
int in = 0, out = 0, len = 0;
cin >> s;
len = s.length();
for(int i = 0; i < len; i++){
if(s[i] == '+'){
in++;
if(out) out--;//特判此时咖啡厅外已经有人
}
else if(s[i] == '-'){
out++;
if(in) in--; //特判此时咖啡内外已经有人
}
}
cout << in + out << endl;
return 0;
}