当我得到错误的答案时,我该如何解决从银行 A 到银行 B 的转账问题

how can i solve transfer from Bank A to Bank B as i get wring answer

您将获得两家银行之间的 N 笔转账(编号从 0 到 N-1)的列表:银行 A 和银行 B。第 K 笔转账由两个值描述:。 R[K](“A”或“B”)代表收款人(转账发送至的银行); V[K] 表示通过传输发送的值。 .所有传输都按照它们在列表中出现的顺序完成。银行不想负债(即他们的账户余额可能不会低于 0)。为了完成转账,每家银行的最低初始账户余额是多少?写一个函数:一个vector int> solution(string &R, vector int> &V);也就是说,给定一个字符串 R 和一个整数数组 V,两者的长度均为 N,returns 是一个包含两个整数的数组。整数应按以下顺序表示银行 A 和 B 的最低初始账户余额:[银行 A,银行 B]。结果数组应 returned 作为整数向量。例子: 示例: 1. 给定 R = "BAABA' 和 V = [2,4,1,1,2],函数应该 return [2,4]。每次转账后的银行账户余额显示在以下table: ΤΑΙ BT 初始余额 2 / 4 transfer 2 from A to B 10 | 6 transfer 4 from B to A | 4 | 2 transfer 1 from B to A | 5 | 1 transfer 1 from A to B | 4 | 2 将 2 从 B 转移到 A 6 10 2. 给定 R = "ABAB" 和 V = [10, 5, 10, 15), 函数应该 return [0, 15) 3. 给定 R = "B" 和 V = [100],函数应该 return (100,0)。为以下假设编写一个有效的算法:字符串 R 和数组 V 的长度均为 N; • N 是一个整数范围 [1..100,000); • 数组 V 的每个元素都是 [1..10,000] 范围内的整数; • strina R 仅包含字符“A” and/or “B”。enges 已保存

def initial_amount(R, V):
    min_A, min_B, balance = 0, 0, 0
    for receiver, amount in zip(R, V):
        if receiver == 'A':
            balance += amount
            min_B = min(-balance, min_B)
        else:
            balance -= amount
            min_A = min(balance, min_A)
    return [-min_A, -min_B]

initial_amount('BAABA', [2,4,1,1,2])
 [2, 4]

initial_amount('ABAB', [10,5,10,15])
[0, 15]

initial_amount('B', [100])
[100, 0]