Swift 的實(shí)現(xiàn)還是太少悼沿,記錄下自己的練習(xí)
題目見LeetCode
條件:
- 面額 不是 5 就是 10 或是 20
- 每一杯[檸檬水]的售價(jià)為 5 元
- 開始手上沒有任何鈔票
思路:
1.開辟三個(gè)變量記錄擁有的鈔票數(shù)
2.給5元妥粟,5元鈔票數(shù)++,通過弛矛,繼續(xù)下一個(gè)
3.給10元,擁有的鈔票數(shù)只要有一張5元的,通過贞谓,繼續(xù)下一個(gè)
4.給了20元十性,先把10元的鈔票退出去(10元鈔票只能用于20元的找零)叛溢,然后退一張5元的;沒有10元就退三張5元劲适。
class Solution {
func lemonadeChange(_ bills: [Int]) -> Bool {
var b5 = 0
var b10 = 0
var b20 = 0
for b in bills {
switch b {
case 5:
b5 += 1
case 10:
if b5 > 0 {
b10 += 1
b5 -= 1
} else {
return false
}
case 20:
if b10 > 0 {
b10 -= 1
if b5 > 0 {
b5 -= 1
b20 += 1
} else {
return false
}
} else {
if b5 >= 3 {
b5 -= 3
b20 += 1
} else {
return false
}
}
default:
return false
}
}
return true
}
}