$10K coding deathmatch

Ryan Byrd ryanbyrd at gmail.com
Wed Nov 1 14:22:45 MST 2006


here's my php, which is basically the same as Chris' solution:

<?
$fp = fopen ($argv[1],"r");
while($line=fgets($fp,4092))
{
  $numbersArray = split(" ",$line);
  $output="match";
  $size=count($numbersArray);
  for ($i=0;$i<($size-1);$i++)
    {
      $difference = abs($numbersArray[$i]-$numbersArray[$i+1]);
      if ($difference>($size-1)||!$difference)
        {
          $output = "not a match";
          break;
        }
    }
  echo $output."\n";
}
fclose($fp);
?>


On 11/1/06, Paul Seamons <paul at seamons.com> wrote:
>
> Need to catch the following:
>
> >  if ($diff > $size) {
>
>    if ($diff && $diff > $size) {
>
> Because the difference must be in the range 1 .. n - 1
>
> Paul Seamons
>
> PS - unmaintainable solution in perl
> perl -ne 'chop;@a=split;$n=grep{$t=abs($a[$_]-$a[$_-1]);!$t||$t>=@a}1..
> $#a;print$n?"not a ":"","match\n"'
>
> /*
> PLUG: http://plug.org, #utah on irc.freenode.net
> Unsubscribe: http://plug.org/mailman/options/plug
> Don't fear the penguin.
> */
>



-- 
http://www.ryanbyrd.net



More information about the PLUG mailing list