fntickets(bills:&[usize])->Result<bool,String>{letmutchange_25=0usize;letmutchange_50=0usize;forbillinbills{matchbill{25=>{change_25+=1;}50=>{if1<=change_25{change_25-=1;change_50+=1;}else{returnOk(false);}}100=>{if1<=change_25&&1<=change_50{change_25-=1;change_50-=1;}elseif3<=change_25{change_25-=3;}else{returnOk(false);}}_=>{returnErr(format!("Expected a 25, 50 or 100 bill - got {}",bill));}}}Ok(true)}fnmain(){assert!(tickets(&[25,25,50])==Ok(true));assert!(tickets(&[25,100])==Ok(false));assert!(tickets(&[25,25,50,50,100])==Ok(false));assert!(tickets(&[25,25,50,50])==Ok(true));assert!(tickets(&[25,50,25,100])==Ok(true));}
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Rust: