1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// @Title: 简易银行系统 (Simple Bank System)
// @Author: 15816537946@163.com
// @Date: 2022-03-18 23:39:14
// @Runtime: 328 ms
// @Memory: 36.5 MB
type Bank []int64


func Constructor(balance []int64) Bank {
    return balance
}


func (b Bank) Transfer(account1 int, account2 int, money int64) bool {
    if account1 > len(b)  || account2 > len(b) || b[account1-1] < money {
        return false
    }
    b[account1-1] -= money
    b[account2-1] += money
    return true
}


func (b Bank) Deposit(account int, money int64) bool {
    if account > len(b) {
        return false
    }
    b[account-1] += money
    return true
}


func (b Bank) Withdraw(account int, money int64) bool {
    if account > len(b) || b[account-1] < money {
        return false
    }
    b[account-1] -= money
    return true
}


/**
 * 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);
 */