Wolfgang Nádasi-donner wrote:
EOS
> s =  list.split("\n").sort{|a,b|a.length<=>b.length}
> pre = 
> s.collect{|e|e.split('')[0...(s[0].length)]}.transpose.collect{|e|e.uniq}.reject{|e|e.length>1}.flatten.join('')
> p pre # => "item"
> 
> Wolfgang N#adasi-Donner

:oops: - I made an error!

The corrected version is...

list = <<-EOS
item0aa
item1aa
item3a
EOS
s =  list.split("\n").sort{|a,b|a.length<=>b.length}
pre = 
s.collect{|e|e.split('')[0...(s[0].length)]}.transpose.collect{|e|e.uniq}.
         inject(''){|r,c|(c.length>1)?(break r):(r<<c[0])}
p pre # => "item"


Wolfgang Nádasi-Donner
-- 
Posted via http://www.ruby-forum.com/.