Go•lemonade-change/solution.go
package main
func lemonadeChange(bills []int) bool {
fives, tens := 0, 0
for _, bill := range bills {
switch {
case bill == 5:
fives++
case bill == 10 && fives > 0:
fives--
tens++
case bill == 20 && tens > 0 && fives > 0:
tens--
fives--
case bill == 20 && fives >= 3:
fives -= 3
default:
return false
}
}
return true
}
Python•lemonade-change/solution.py
class Solution:
def lemonadeChange(self, bills: list[int]) -> bool:
fives = tens = class="syntax-number">0
for bill in bills:
if bill == class="syntax-number">5: fives += class="syntax-number">1
elif bill == class="syntax-number">10:
if not fives: return False
fives, tens = fives - class="syntax-number">1, tens + class="syntax-number">1
elif tens and fives: tens, fives = tens - class="syntax-number">1, fives - class="syntax-number">1
elif fives >= class="syntax-number">3: fives -= class="syntax-number">3
else: return False
return True
TypeScript•lemonade-change/solution.ts
function lemonadeChange(bills: number[]): boolean {
let fives = class="syntax-number">0;
let tens = class="syntax-number">0;
for (const bill of bills) {
if (bill === class="syntax-number">5) fives += class="syntax-number">1;
else if (bill === class="syntax-number">10) { if (fives === class="syntax-number">0) return false; fives -= class="syntax-number">1; tens += class="syntax-number">1; }
else if (tens > class="syntax-number">0 && fives > class="syntax-number">0) { tens -= class="syntax-number">1; fives -= class="syntax-number">1; }
else if (fives >= class="syntax-number">3) fives -= class="syntax-number">3;
else return false;
}
return true;
}