Skip to content

Instantly share code, notes, and snippets.

@reneolivo
Created May 1, 2013 19:36
Show Gist options
  • Save reneolivo/5497736 to your computer and use it in GitHub Desktop.
Save reneolivo/5497736 to your computer and use it in GitHub Desktop.
function esPalindromo(cadena) {
cadena = cadena.toString();
var finCiclo = Math.floor( cadena.length / 2 );
for(var i = 0; i <= finCiclo; i++)
if ( cadena[i] != cadena[ cadena.length - i - 1 ] )
return false;
return true;
}
var tiempoInicio = new Date().getTime();
var fs = require('fs');
//leer archivo:
fs.readFile('seed.txt', function(error, archivo) {
var contador = 0;
var lineas = archivo.toString().split("\n");
var maximo = false;
var minimo = false;
var listadoRangos = [];
//buscar rango máximo y minimo:
for (var num in lineas) {
var rango = lineas[num].split(' ');
rango[0] = parseInt(rango[0]);
rango[1] = parseInt(rango[1]);
listadoRangos.push(rango);
if (minimo === false || minimo > rango[0])
minimo = rango[0];
if (maximo === false || maximo < rango[1])
maximo = rango[1];
}
//buscar palindromos en todos los rangos:
for(var i = minimo; i <= maximo; i++) {
if (esPalindromo(i)) {
listadoRangos.forEach(function(rango) {
if (i >= rango[0] && i <= rango[1])
contador++;
});
}
}
//marcar tiempo:
var tiempoFin = new Date().getTime();
var tiempoTotal = (tiempoFin - tiempoInicio) / 1000;
console.log( 'Encontradas : ' + contador );
console.log( 'Inicio : ' + tiempoInicio );
console.log( 'Fin : ' + tiempoFin );
console.log( 'Tiempo Total : ' + tiempoTotal );
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment