http://qs321.pair.com?node_id=438134


in reply to Re: The greedy change-making problem using regexes
in thread The greedy change-making problem using regexes

Ooh, that is quite elegant indeed. One of my lessons here was "Know in which order thine regex engine tries things" but I completely missed this little optimization. ;) It really matches up temporaly with the spirit of the problem.

I suppose I could also use (?>pattern) to prevent backtracking and perform the greedy match without the negative lookaheads?

(1 x $money) =~ /^(?>(1{10})*)(?>(1{6})*)(?>(1{5})*)(?>(1{1})*)$/
Although I can't say I've ever really used (?>pattern)...

Anyway, the pain in the butt is counting the number of coins. I like my little (?{$^R+1}) idiom!

blokhead