Problem
Encapsulation keeps an object's data private and only changes it through methods that enforce the rules. A bank account's balance can only change through deposit and withdraw.
Start with a balance of 0 and process the operations, each deposit <amount> or withdraw <amount>:
- An amount that is 0 or negative is rejected.
- A withdrawal larger than the current balance is rejected.
- Otherwise the balance changes.
Implement bank_account_rules(operations).
Input
operations: The operations, in order.
Output
Return [final_balance, rejected_count].
Einschränkungen
0 ≤ number of operations ≤ 100,000
−10^9 ≤ amount ≤ 10^9
Beispiele
Eingabe:
operations = ["deposit 100", "withdraw 30", "withdraw 200"]
Erwartete Ausgabe:
expected = [70, 1]
Eingabe:
std::vector<std::string> operations = {"deposit 100", "withdraw 30", "withdraw 200"};
Erwartete Ausgabe:
std::vector<long long> expected = {70, 1};
Eingabe:
string[] operations = new string[] {"deposit 100", "withdraw 30", "withdraw 200"};
Erwartete Ausgabe:
long[] expected = new long[] {70, 1};
Erläuterung
100 − 30 leaves 70; withdrawing 200 would overdraw the account, so it is rejected: [70, 1].
Eingabe:
operations = ["deposit -5", "withdraw 0", "deposit 10"]
Erwartete Ausgabe:
expected = [10, 2]
Eingabe:
std::vector<std::string> operations = {"deposit -5", "withdraw 0", "deposit 10"};
Erwartete Ausgabe:
std::vector<long long> expected = {10, 2};
Eingabe:
string[] operations = new string[] {"deposit -5", "withdraw 0", "deposit 10"};
Erwartete Ausgabe:
long[] expected = new long[] {10, 2};
Erläuterung
The negative deposit and the zero withdrawal are both rejected; the last deposit succeeds: [10, 2].
So gehst du vor
Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.
Hinweis 1
Keep the balance private and change it only in deposit and withdraw.
Hinweis 2
Reject amounts of 0 or less before anything else.
Hinweis 3
A withdrawal may not take the balance below zero.
Erwartete Komplexität
O(number of operations) time, O(1) extra space
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.