/*
1.- Pensar: buscar la manera de resolver el problema.
Si no tenemos una dirección no nos pongamos a andar
2.- Estoy pensando y no se me ocurre nada ¿Qué hago?
Divide y vencerás: Todo problema grande se componde problemas pequeños.
Intento dividir el problema en partes
3.- ¿Cómo lo haría yo? Busco MI algoritmo (mi manera de resolver el problema)
Y miro si me da una pista de cómo decirle al ordenador que lo resuelva
Dado un número saber si es capicua. EJ: 2002 es capicua 2020 no es capicua
¿Como sé si un número es capicua?
Definición que es igual de alante atrás que de atrás alante
Si el número y el número invertido son iguales es capicua y si no no
¿Se yo invertir una cadena?
Buscando en internet lo he conseguido:
cadena.split('').reverse().join('')
let cadena='hola que tal'
let res=''
for(let i=cadena.length-1;i>=0;i--){
res+=cadena.substring(i,1)
}
let res=''
for(let i=0;i<cadena.length;i++){
res=cadena.substring(i,1)+res
}
res tengo la cadena invertida
*/
function capicua (numero) {
const invertido = numero.split('').reverse().join('')
if (invertido == numero) {
return true
} else {
return false
}
}
function capicuaShort (numero) {
const invertido = numero.split('').reverse().join('')
return (invertido == numero)
}
/*
SI una frase es capicua o palíndromo
ej: 'isaac no ronca asi'
Lo mismo que antes pero quitando espacios
¿Se quitar espacios? .replace('/ /g,'')
*/
function palindromo (cadena) {
// Quito los espacios y lo paso a minúsculas
cadena = cadena.replace(/ /g, '').toLowerCase()
// Invierto la cadena con el truco de internet que es
// Pasar a array cada caracter, darle la vuelta y volver a juntar
const invertida = cadena.split('').reverse().join('')
// Devuelvo directamente la igualdad: si son iguales devuelvo true y si no false
return cadena == invertida
}