java实现柠檬水找零问题
问题描述:
在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-parentheses>
class Solution {
public boolean lemonadeChange(int[] bills) {
Stack<Integer>stack1=new Stack<Integer>();
Stack<Integer>stack2=new Stack<Integer>();
if(bills[0]!=5){
return false;
}
else{
stack1.push(bills[0]);
for(int i=1;i<bills.length;i++){
if(bills[i]==5){
stack1.push(bills[i]);
}
else if(bills[i]==10){
if(stack1.empty()){
return false;
}
else{
stack1.pop();
stack2.push(bills[i]);
}
}
else{
if(stack2.empty()){
if(stack1.size()<3)
{
return false;
}
else{
stack1.pop();
stack1.pop();
stack1.pop();
}
}
else{
if(stack1.empty()){return false;}
else{
stack1.pop();
stack2.pop();
}
}
}
}
}
return true;
}
}