Discussion: Fwd: Ruby Quiz #148
Afficher un message
Vieux 03/12/2007, 05h38   #4
Ken Bloom
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Fwd: Ruby Quiz #148

On Sun, 02 Dec 2007 21:47:29 -0500, Dave Pederson wrote:

> Note: parts of this message were removed by the gateway to make it a
> legal Usenet post.
>
> Solution to quiz #148.
> Thanks,
>
> -Dave
> ---------- Forwarded message ---------- From: Dave Pederson
> <dave.pederson.ruby@gmail.com> Date: Nov 30, 2007 7:26 PM
> Subject: Ruby Quiz #148
> To: dave.pederson.ruby@gmail.com
>
>
> #!/usr/bin/env ruby
>
> op = %w{ + - / * }
> pm = %w{ + - }
>
> postfixes = ["2 3 5 + *",
> "1 56 35 + 16 9 - / +",
> "56 34 213.7 + * 678 -",
> "5 9 * 8 7 4 6 + * 2 1 3 * + * + *"]
>
> puts
> postfixes.each do |postfix|
> stack = []
> postfix.split.each do |c|
> if op.include?(c)
> second, first = stack.pop, stack.pop
> if pm.include?(c)
> stack.push "(#{first} #{c} #{second})"
> else
> stack.push "#{first} #{c} #{second}"
> end
> else
> stack.push(c)
> end
> end
> infix = stack.pop
> if (infix[0] == 40 && infix[infix.size-1] == 41)
> infix = infix[1, infix.size-2]
> end
> puts "postfix = #{postfix}"
> puts "infix = #{infix}"
> puts
> end


This is incorrect:

postfix = 3 5 * 5 8 * /
infix = 3 * 5 / 5 * 8

It should be
infix = 3 * 5 / (5 * 8)

--Ken

--
Ken (Chanoch) Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu/~kbloom1/
  Réponse avec citation
 
Page generated in 0,06553 seconds with 9 queries