#Challenge 23
1 messages · Page 1 of 1 (latest)
Hola gente, ¿como habéis hecho este? Paso los tests de los ejemplos, pero no el resto. Y el error que da juraría que es de un reto anterior.
¡No pasan los tests! Revisa bien los ejemplos y ten en cuenta que puede haber viajes con más paradas de dos...
Solución, incorrecta, pero pasa los tests 😅 ||```js
function canReconfigure( from, to ) {
return from.length === to.length &&
[... new Set( from.split('') )].length === [... new Set( to.split('') )].length
}
Yo lo tengo muy parecido, que no igual.
||```js
function canReconfigure(from, to) {
if (from.length !== to.length) return false
if (from.length !== [...new Set([...from])].length) return false
if (to.length !== [...new Set([...to])].length) return false
return true
}
La movida es que el tuyo no debería pasar, ¿no? En un caso 'MMX' y 'JAA' estaría mal
Actualizado el mío a esto, y ya pasan:
||```js
function canReconfigure(from, to) {
if (from.length !== to.length) return false
if ([...new Set([...from])].length !== [...new Set([...to])].length) return false
return true
}
Es lo mismo, pero invirtiendo la condición.
Si si, pero no se si debería ser correcto
Es incorrecto porque puede haber duplicados en el from y en el to, con lo que al usar el set para eliminar los duplicados, el length te va a cambiar con respecto al original from o to.
Cierto.
En realidad tenía otra solución, más verbosa, pero creo que es correcta. Como dices, ese caso 'MMX', 'JAA', debería de ser false y devuelve true
Solución que funciona:
||```js
function canReconfigure( from, to ) {
if( from.length !== to.length ) return false
const transformations = {}
for( const i in from ) {
const letterFrom = from[ i ]
const letterTo = to[ i ]
if( transformations[ letterFrom ] && transformations[ letterFrom ] !== letterTo ) return false
const previousTransform = Object
.entries( transformations )
.find( ( [ , letter ] ) => letter === letterTo )
if( previousTransform && previousTransform[ 0 ] !== letterFrom ) return false
transformations[ letterFrom ] = letterTo
}
return true
}```
||
No se si he entendido bien los requisitos del reto..
Hay que mirar que ni el FROM ni el TO tenga duplicados, no?
Bueno y que tengan la misma longitud..
Mi solución para el reto.
Mi solución
No es correcta para 'MMX' y 'JAA', devuelve true y sería false.
Mi solución
dejo mi solución por aquí también
Reto 23
Reto 23 - No fue fácil
Bueno es lo primero que se me ocurrio