给你一个长度为 n 的整数数组 nums 和一个相同长度的二进制字符串 s。
一开始,你的分数为 0。对于每一个 s[i] = '1' 的下标 i,都会为分数贡献 nums[i]。
你可以执行 任意 次操作(包括零次)。在一次操作中,你可以选择一个下标 i(0 <= i < n - 1),满足 s[i] = '0' 且 s[i + 1] = '1',并交换这两个字符。
返回一个整数,表示你可以获得的 最大可能分数。
示例 1:
输入: nums = [2,1,5,2,3], s = "01010"
输出: 7
解释:
我们可以执行以下交换操作:
i = 0 处交换:"01010" 变为 "10010"i = 2 处交换:"10010" 变为 "10100"下标 0 和 2 包含 '1',贡献的分数为 nums[0] + nums[2] = 2 + 5 = 7。这是可以获得的最大分数。
示例 2:
输入: nums = [4,7,2,9], s = "0000"
输出: 0
解释:
字符串 s 中没有字符 '1',因此无法执行交换操作。分数保持为 0。
提示:
n == nums.length == s.length1 <= n <= 1051 <= nums[i] <= 109s[i] 是 '0' 或 '1'