pateketrueke
Código PHP:
Ver originalfunction reduce($text)
{
$key = 0;
do
{
{
if (strlen($text) < 3) return $text; $str []= $array[$key++];
continue;
}
elseif ( ! isset($array[$key])) {
if (end($str) != $current) $str []= $current; }
$left = ord($prev = $array[$key -1]); $right = ord($current = $array[$key++]);
if (($factor = abs($left - $right)) == 0 OR
$factor > 1) {
if (end($str) == '-') $str []= $prev; $str []= $current;
}
elseif ($factor == 1)
{
$next = isset($array[$key])?
$array[$key]: ''; switch (1)
{
default: break;
case ($left < $right && $right > ord($next)); case ($left > $right && $right < ord($next)); $str []= $current;
break;
if (abs(ord($next) - $right) != 1) $str []= $current; else $str []= '-';
break;
}
}
} while (1);
}
Yo. Igualmente sin comentarios, que les puedo decir: me gustan muchos los arreglos, y sabiendo que muchos usarían algún método
split quise hacer algo distinto. Me agrada usar bucles lógicos, condicionales y asignaciones extrañas, etc.
Eso lo digo yo, porque nadie puede juzgar mi código mas que el jurado electo para el reto.
Por debajo de la mayoría, mi participación no resultó la mas veloz, mucho menos más la mas corta... pero que entretenido fue escribir la trivial función.