समस्या
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].
सीमाएँ
0 ≤ number of operations ≤ 100,000
−10^9 ≤ amount ≤ 10^9
उदाहरण
इनपुट:
operations = ["deposit 100", "withdraw 30", "withdraw 200"]
अपेक्षित आउटपुट:
expected = [70, 1]
इनपुट:
std::vector<std::string> operations = {"deposit 100", "withdraw 30", "withdraw 200"};
अपेक्षित आउटपुट:
std::vector<long long> expected = {70, 1};
इनपुट:
string[] operations = new string[] {"deposit 100", "withdraw 30", "withdraw 200"};
अपेक्षित आउटपुट:
long[] expected = new long[] {70, 1};
व्याख्या
100 − 30 leaves 70; withdrawing 200 would overdraw the account, so it is rejected: [70, 1].
इनपुट:
operations = ["deposit -5", "withdraw 0", "deposit 10"]
अपेक्षित आउटपुट:
expected = [10, 2]
इनपुट:
std::vector<std::string> operations = {"deposit -5", "withdraw 0", "deposit 10"};
अपेक्षित आउटपुट:
std::vector<long long> expected = {10, 2};
इनपुट:
string[] operations = new string[] {"deposit -5", "withdraw 0", "deposit 10"};
अपेक्षित आउटपुट:
long[] expected = new long[] {10, 2};
व्याख्या
The negative deposit and the zero withdrawal are both rejected; the last deposit succeeds: [10, 2].
कैसे हल करें
पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।
संकेत 1
Keep the balance private and change it only in deposit and withdraw.
संकेत 2
Reject amounts of 0 or less before anything else.
संकेत 3
A withdrawal may not take the balance below zero.
अपेक्षित जटिलता
O(number of operations) time, O(1) extra space
संदर्भ
यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।