1422. Maximum Score After Splitting a String 链接到标题 求出左侧 0 数量和右侧 1 数量之和最多的情况,遍历一次,每次更新最大值,注意要保证字符串始终被切分为 2 个子字符串。
class Solution: def maxScore(self, s: str) -> int: right = s.count('1') left = 0 score = 0 for idx in range(len(s) - 1): if s[idx] == '1': score = max(score, (left + right - 1)) right -= 1 else: score = max(score, (left + 1 + right)) left += 1 return score 1423. Maximum Points You Can Obtain from Cards 链接到标题 先假设所有的数字都是从左侧获取的,然后依次遍历 k 个数值,每次遍历将左侧数字剔除,将右侧数字加入,比较最大值。