classBank:def__init__(self,balance:List[int]):self.balance=balanceself.n=len(balance)deftransfer(self,account1:int,account2:int,money:int)->bool:ifaccount1>self.noraccount2>self.norself.balance[account1-1]<money:returnFalseself.balance[account1-1]-=moneyself.balance[account2-1]+=moneyreturnTruedefdeposit(self,account:int,money:int)->bool:ifaccount>self.n:returnFalseself.balance[account-1]+=moneyreturnTruedefwithdraw(self,account:int,money:int)->bool:ifaccount>self.norself.balance[account-1]<money:returnFalseself.balance[account-1]-=moneyreturnTrue# Your Bank object will be instantiated and called as such:# obj = Bank(balance)# param_1 = obj.transfer(account1,account2,money)# param_2 = obj.deposit(account,money)# param_3 = obj.withdraw(account,money)
classBank{privatelong[]balance;privateintn;publicBank(long[]balance){this.balance=balance;this.n=balance.length;}publicbooleantransfer(intaccount1,intaccount2,longmoney){if(account1>n||account2>n||balance[account1-1]<money){returnfalse;}balance[account1-1]-=money;balance[account2-1]+=money;returntrue;}publicbooleandeposit(intaccount,longmoney){if(account>n){returnfalse;}balance[account-1]+=money;returntrue;}publicbooleanwithdraw(intaccount,longmoney){if(account>n||balance[account-1]<money){returnfalse;}balance[account-1]-=money;returntrue;}}/** * Your Bank object will be instantiated and called as such: * Bank obj = new Bank(balance); * boolean param_1 = obj.transfer(account1,account2,money); * boolean param_2 = obj.deposit(account,money); * boolean param_3 = obj.withdraw(account,money); */
classBank{public:vector<longlong>balance;intn;Bank(vector<longlong>&balance){this->balance=balance;n=balance.size();}booltransfer(intaccount1,intaccount2,longlongmoney){if(account1>n||account2>n||balance[account1-1]<money)returnfalse;balance[account1-1]-=money;balance[account2-1]+=money;returntrue;}booldeposit(intaccount,longlongmoney){if(account>n)returnfalse;balance[account-1]+=money;returntrue;}boolwithdraw(intaccount,longlongmoney){if(account>n||balance[account-1]<money)returnfalse;balance[account-1]-=money;returntrue;}};/** * 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); */
typeBankstruct{balance[]int64nint}funcConstructor(balance[]int64)Bank{returnBank{balance,len(balance)}}func(this*Bank)Transfer(account1int,account2int,moneyint64)bool{ifaccount1>this.n||account2>this.n||this.balance[account1-1]<money{returnfalse}this.balance[account1-1]-=moneythis.balance[account2-1]+=moneyreturntrue}func(this*Bank)Deposit(accountint,moneyint64)bool{ifaccount>this.n{returnfalse}this.balance[account-1]+=moneyreturntrue}func(this*Bank)Withdraw(accountint,moneyint64)bool{ifaccount>this.n||this.balance[account-1]<money{returnfalse}this.balance[account-1]-=moneyreturntrue}/** * Your Bank object will be instantiated and called as such: * obj := Constructor(balance); * param_1 := obj.Transfer(account1,account2,money); * param_2 := obj.Deposit(account,money); * param_3 := obj.Withdraw(account,money); */
classBank{balance:number[];constructor(balance:number[]){this.balance=balance;}transfer(account1:number,account2:number,money:number):boolean{if(account1>this.balance.length||account2>this.balance.length||money>this.balance[account1-1])returnfalse;this.balance[account1-1]-=money;this.balance[account2-1]+=money;returntrue;}deposit(account:number,money:number):boolean{if(account>this.balance.length)returnfalse;this.balance[account-1]+=money;returntrue;}withdraw(account:number,money:number):boolean{if(account>this.balance.length||money>this.balance[account-1]){returnfalse;}this.balance[account-1]-=money;returntrue;}}/** * Your Bank object will be instantiated and called as such: * var obj = new Bank(balance) * var param_1 = obj.transfer(account1,account2,money) * var param_2 = obj.deposit(account,money) * var param_3 = obj.withdraw(account,money) */
structBank{balance:Vec<i64>,}/** * `&self` means the method takes an immutable reference. * If you need a mutable reference, change it to `&mut self` instead. */implBank{fnnew(balance:Vec<i64>)->Self{Bank{balance}}fntransfer(&mutself,account1:i32,account2:i32,money:i64)->bool{let(account1,account2,n)=(account1asusize,account2asusize,self.balance.len());ifn<account1||n<account2{returnfalse;}ifself.balance[account1-1]<money{returnfalse;}self.balance[account1-1]-=money;self.balance[account2-1]+=money;true}fndeposit(&mutself,account:i32,money:i64)->bool{let(account,n)=(accountasusize,self.balance.len());ifn<account{returnfalse;}self.balance[account-1]+=money;true}fnwithdraw(&mutself,account:i32,money:i64)->bool{let(account,n)=(accountasusize,self.balance.len());ifn<account{returnfalse;}ifself.balance[account-1]<money{returnfalse;}self.balance[account-1]-=money;true}}