Word squares are like really simple crossword puzzles. There are no black squares, the grid is a square, and the "down" clues are the same as the "across" clues.
So, given some list of strings, return the strings in the order they would appear (down or across) in the grid. My solution uses two functions, and thus, I have decided that character count will include the "sub ...".
So, given a list of words, construct a word square out of them. Here is an example:
The solution:division of a road: _ _ _ _ a location: _ _ _ _ in proximity to: _ _ _ _ hearing organs: _ _ _ _
L A N E A R E A N E A R E A R S |
My code is (updated, thanks to abstracts) 131 characters.#23456789_123456789_123456789_123 sub Q{my$j=pop;my@l=map$$_[$j],@_ ;for(@_){return"@$_",Q(@_,++$j)if "@{[sort@$_]}"eq"@{[sort@l]}"}()} sub S{Q map([split//],@_),$"=""}
_____________________________________________________
Jeff[japhy]Pinyan:
Perl,
regex,
and perl
hacker.
s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: (Golf) Word squares
by abstracts (Hermit) on Aug 14, 2001 at 00:05 UTC | |
by larryk (Friar) on Aug 14, 2001 at 03:07 UTC | |
by Anonymous Monk on Aug 14, 2001 at 02:43 UTC | |
Re: (Golf) Word squares
by Cirollo (Friar) on Aug 13, 2001 at 21:18 UTC | |
by blakem (Monsignor) on Aug 13, 2001 at 22:20 UTC | |
by japhy (Canon) on Aug 13, 2001 at 22:13 UTC | |
by Cirollo (Friar) on Aug 13, 2001 at 23:56 UTC |
Back to
Meditations