解题思路:
(1)记录当前位置以及之前位置0和1出现的总个数
(2)重新遍历,判断以当前位置为划分,前0和后1数量的总和
class Solution {
public:
int maxScore(string s) {
vector<int> v0,v1;
int count0=0,count1=0;
for(int i=0;i<s.length();i++) {
if(s[i]=='0') count0++;
else count1++;
v0.push_back(count0);
v1.push_back(count1);
}
int max = 0;
for(int i=0;i<s.length()-1;i++) {
if(v0[i]+count1-v1[i]>max) max = v0[i]+count1-v1[i];
}
return max;
}
};