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