Begin forwarded message:

> From: red <red / raven.ch>
> Date: October 6, 2006 11:24:54 AM CDT
> To: submission / rubyquiz.com
> Subject: Posix Pangrams (#97) - Quicksolution
>
> Hi,
> this is my first solution to the Ruby-Quiz #97. It's not really
> optizied; neither for speed, the fewest utilities or number of  
> repeated
> letters. it's just a base-implementation.
> I'll get back to this quiz later and will hopefully find a better
> solution.
>
> ----------------------------------------------------------
> class PosixPangrams
>   @pool = ['admin','alias','ar','asa','at','awk',
>     'basename','batch','bc','bg',
>      
> 'c99','cal','cat','cd','cflow','chgrp','chmod','chown','cksum','cmp',' 
> comm','command','compress','cp','crontab','csplit','ctags','cut','cxre 
> f',
>     'date','dd','delta','df','diff','dirname','du',
>     'echo','ed','env','ex','expand','expr',
>     'false','fc','fg','file','find','fold','fort77','fuser',
>     'gencat','get','getconf','getopts','grep',
>     'hash','head',
>     'iconv','id','ipcrm','ipcs',
>     'jobs','join',
>     'kill',
>      
> 'lex','link','ln','locale','localedef','logger','logname','lp','ls',
>     'm4','mailx','make','man','mesg','mkdir','mkfifo','more','mv',
>     'newgrp','nice','nl','nm','nohup',
>     'od',
>     'paste','patch','pathchk','pax','pr','printf','prs','ps','pwd',
>      
> 'qalter','qdel','qhold','qmove','qmsg','qrerun','qrls','qselect','qsig 
> ','qstat','qsub',
>     'read','renice','rm','rmdel','rmdir',
>      
> 'sact','sccs','sed','sh','sleep','sort','split','strings','strip','stt 
> y',
>      
> 'tabs','tail','talk','tee','test','time','touch','tput','tr','true','t 
> sort','tty','type',
>      
> 'ulimit','umask','unalias','uname','uncompress','unexpand','unget','un 
> iq','unlink','uucp','uudecode','uuencode','uustat','uux',
>     'val','vi',
>     'wait','wc','what','who','write',
>     'xargs',
>     'yacc','zcat']
>   @letters = {}
>   @wordcount = {}
>
>   def PosixPangrams::justdoit
>     @pool.each { |word|
>       word.each_byte { |letters|
>         letters = letters.chr
>         if @letters[letters].nil?
>           @letters[letters] = [word]
>         else
>           @letters[letters] << word if
> @letters[letters].index(word).nil?
>         end
>       }
>     }
>
>     ('a'..'z').each { |letter|
>       @wordcount[letter] = @letters[letter].length
>     }
>
>     @wordcount = @wordcount.sort {|a,b| a[1]<=>b[1]}
>
>     output = ""
>     @wordcount.each { |letter|
>       output += (@letters[letter[0]][rand(@letters[letter[0]].length)]
> + " ") if output.index(letter[0]).nil?
>     }
>
>     output.each { |word| print word + " " }
>   end
> end
>
> PosixPangrams::justdoit();
> ----------------------------------------------------------
>
> Greets
> red
>
> -- 
> http://raven.ch/ - red / raven.ch - jabber: syeo66 / swissjabber.ch
> Bahnhofstrasse 14 - CH-3400 Burgdorf - Switzerland
> Phone: +41 32 511 71 18 - Mobile: +41 76 373 70 20 - skype: syeo66
> PGP-Key: http://raven.ch/public_key.asc