leetcode 2043 简易银行系统
一、题目描述


二、解题思路
(1)构造函数Bank
<1>首先,将Bank类的对象my_account清空;
<2>由于my_account要从下标1开始,所以将my_accont[0]赋值为-1,再循环将balance[i]赋值给my_account[i+1],最后返回true;
(2)transfer函数
<1>首先,进行合法性检测,如果account1heaccount2越界,就返回false。如果account1账户的余额不足,也返回false;
<2>如果合法,就将account1账户中的money转到account2账户,并返回true;
(3)deposit函数
<1>首先,进行合法性检测,如果account越界,就返回false;
<2>否则,就将account账户的金额增加money,再返回true;
(4)withdraw函数
<1>首先,进行合法性检测。如果account越界,或者account账户中余额不足,就返回false;
<2>否则,就从account账户中转出money,再返回true;
三、代码实现
class Bank {
public:vector<long long> my_account;//初始化Bank(vector<long long>& balance) {my_account.clear();my_account.push_back(-1);for(int i=0;i!=balance.size();i++)my_account.push_back(balance[i]);}//从编号为account1的账户向编号为account2的账户转帐money美元bool transfer(int account1, int account2, long long money) {//边界情况处理if(account1>my_account.size()-1) return false;if(account2>my_account.size()-1) return false;if(my_account[account1]<money) return false;else{my_account[account1]-=money;my_account[account2]+=money;return true;}}//向编号为account的账户存款money美元bool deposit(int account, long long money) {//边界情况处理if(account>my_account.size()-1) return false;else{my_account[account]+=money;return true;}}//从编号为account的账户取款money美元bool withdraw(int account, long long money) {//边界处理if(account>my_account.size()-1) return false;if(my_account[account]<money) return false;else{my_account[account]-=money;return true;}}
};/*** Your Bank object will be instantiated and called as such:* Bank* obj = new Bank(balance);* bool param_1 = obj->transfer(account1,account2,money);* bool param_2 = obj->deposit(account,money);* bool param_3 = obj->withdraw(account,money);*/