跳到主要内容

1422.分割字符串的最大得分

链接:1422.分割字符串的最大得分
难度:Easy
标签:字符串、前缀和
简介:给你一个由若干 0 和 1 组成的字符串 s ,请你计算并返回将该字符串分割成两个 非空 子字符串(即 左 子字符串和 右 子字符串)所能获得的最大得分。

题解 1 - cpp

  • 编辑时间:2022-08-15
  • 内存消耗:6.2MB
  • 编程语言:cpp
  • 解法介绍:遍历并计算左 0 和右 1 的数量。
class Solution {
public:
int maxScore(string s) {
int ans = 0, cnt0 = 0, cnt1 = 0;
for (auto &c : s) {
if (c == '1') cnt1++;
}
for (int i = 0; i < s.size() - 1; i++) {
char c = s[i];
if (c == '0') cnt0++;
else cnt1--;
ans = max(ans, cnt0 + cnt1);
}
return ans;
}
};