Einfach 0 gelöst 0% Erfolgsquote

Bank Account Rules

Protect an account's balance behind deposit and withdraw rules, rejecting invalid operations.

Das lernst du

  • Change state only through methods
  • Reject invalid amounts and overdrafts
  • Keep a count of rejected operations

Problem

Übersetzung anzeigen

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

Beispiel 1
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].

Beispiel 2
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.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.