Description
小美喜欢字母E,讨厌字母F。在小美生日时,小团送了小美一个仅包含字母E和F的字符串,小美想从中选出一个包含字母E数量与字母F数量之差最大的子串。
*子串:从字符串前面连续删去若干个字符,从后面连续删去若干个字符剩下的字符串(也可以一个都不删),例如abcab是fabcab的子串,而不是abcad的子串。
我们将空串看作所有字符串的子串。
输入格式
第一行一个正整数n表示字符串的长度。
第二行长度为n,且仅包含大写字母’E’,’F’的字符串(不含引号)
输出格式
输出一个整数,表示最大的差值
输入样例
5
EFEEF
输出样例
2
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;
int main(){
int n;
int sum=0,max1=0;
cin>>n;
vector<int> str(n);
for(int i=0;i<n;i++){
char tmp;
cin>>tmp;
str[i]=(tmp=='E'? 1: -1);
}
for(int i=0;i<n;i++){
sum+=str[i];
sum=max(sum,0);
max1=max(max1,sum);
}
cout<<max1;
return 0;
}