Mostrar los tags: reduce

Mostrando del 21 al 30 de 33 coincidencias
Se ha buscado por el tag: reduce
Imágen de perfil

Convertir una lista de listas en una sola lista


Python

Publicado el 5 de Febrero del 2020 por Katas (150 códigos)
2.314 visualizaciones desde el 5 de Febrero del 2020
Crear una función que dada una lista que puede contener es su interior otras lista, y que a su vez pueden contener mas lista, devuelva una sola lista con sus valores.

1
2
3
4
5
6
deep_flatten([[[1],2],3,[4,5]])              # [1, 2, 3, 4, 5]
deep_flatten([1, [2], [[3], 4], 5])          # [1, 2, 3, 4, 5]
deep_flatten([1, 2, 3])                      # [1, 2, 3]
deep_flatten([[1], [], 2, [3,[4, 5, 6]], 7]) # [1, 2, 3, 4, 5, 6, 7]
deep_flatten([[[], []], []])                 # []
deep_flatten([1, [[], []], []])              # [1]
Imágen de perfil

Convertir un array de arrays en un solo array


PHP

Publicado el 24 de Enero del 2020 por Kata (76 códigos)
1.105 visualizaciones desde el 24 de Enero del 2020
Crear una función que dado un array que puede contener es su interior otros arrays, y que a su vez pueden contener mas arrays, devuelva un solo array con sus valores.

1
2
3
4
array_flat([1, 2, 3]); // [1, 2, 3]
array_flat([[1], [], 2, [3,[4, 5, 6]], 7]); // [1, 2, 3, 4, 5, 6, 7]
array_flat([[[], []], []]); // []
array_flat([1, [[], []], []]); // [1]
Imágen de perfil

Make the Deadfish swim


PHP

Publicado el 24 de Enero del 2020 por Kata (76 códigos)
902 visualizaciones desde el 24 de Enero del 2020
Deadfish tiene 4 comandos, cada uno de 1 carácter de largo:
i incrementa el valor (inicialmente 0)
d disminuye el valor
s cuadra el valor
o genera el valor en la matriz de retorno
Los caracteres inválidos deben ser ignorados.

1
print_r(parse("iiisdoso")); // [8, 64]
Imágen de perfil

Contar las letras/caracteres de una cadena dada


Python

Publicado el 21 de Enero del 2020 por Katas (150 códigos)
3.025 visualizaciones desde el 21 de Enero del 2020
Crear una función que reciba una cadena y devuelva un diccionario con todas las letras o caracteres indicando las veces que aparecen. No distinguir entre mayúsculas y minúsculas.

1
2
3
4
5
countLetters("")              # {}
countLetters("xxxx")          # {'x': 4}
countLetters("xXxX")          # {'x': 4}
countLetters("the big house") # {'t': 1, 'h': 2, 'e': 2, ' ': 2, 'b': 1, 'i': 1, 'g': 1, 'o': 1, 'u': 1, 's': 1}
countLetters("1000$")         # {'1': 1, '0': 3, '$': 1}
Imágen de perfil

Buscar la posición de todos los elementos en un array


JavaScript

Publicado el 17 de Enero del 2020 por Katas (200 códigos)
935 visualizaciones desde el 17 de Enero del 2020
Crear una función que devuelva un array con todos los índices donde se encuentre un elemento en una matriz. Si no se encuentra ninguna vez, tiene que devolver un array vació [].

1
2
indexOfAll([1, 2, 3, 1, 2, 3], 1); // [0,3]
indexOfAll([1, 2, 3], 4); // []
Imágen de perfil

Cortar un texto para que se ajuste en anchura sin cortar ninguna palabra


JavaScript

Publicado el 12 de Enero del 2020 por Katas (200 códigos)
1.393 visualizaciones desde el 12 de Enero del 2020
Escriba un formato de función que tome dos argumentos, texto y ancho, y formatee el texto para que se ajuste al ancho.

Su función debe dividir el texto dado en líneas usando caracteres de nueva línea. Debe incluir tantas palabras en cada línea como sea posible sin exceder el ancho dado o dividir las palabras entre dos líneas. No debe haber un espacio al principio o al final de cualquier línea.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const texto="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum sagittis dolor mauris, at elementum ligula tempor eget. In quis rhoncus nunc, at aliquet orci. Fusce at dolor sit amet felis suscipit tristique. Nam a imperdiet tellus. Nulla eu vestibulum urna. Vivamus tincidunt suscipit enim, nec ultrices nisi volutpat ac. Maecenas sit amet lacinia arcu, non dictum justo. Donec sed quam vel risus faucibus euismod. Suspendisse rhoncus rhoncus felis at fermentum. Donec lorem magna, ultricies a nunc sit amet, blandit fringilla nunc. In vestibulum velit ac felis rhoncus pellentesque. Mauris at tellus enim. Aliquam eleifend tempus dapibus. Pellentesque commodo, nisi sit amet hendrerit fringilla, ante odio porta lacus, ut elementum justo nulla et dolor.";
 
result=format(texto, 30);
/* Devolvera:
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Vestibulum sagittis dolor
mauris, at elementum ligula
tempor eget. In quis rhoncus
nunc, at aliquet orci. Fusce
at dolor sit amet felis
suscipit tristique. Nam a
imperdiet tellus. Nulla eu
vestibulum urna. Vivamus
tincidunt suscipit enim, nec
ultrices nisi volutpat ac.
Maecenas sit amet lacinia
arcu, non dictum justo. Donec
sed quam vel risus faucibus
euismod. Suspendisse rhoncus
rhoncus felis at fermentum.
Donec lorem magna, ultricies a
nunc sit amet, blandit
fringilla nunc. In vestibulum
velit ac felis rhoncus
pellentesque. Mauris at tellus
enim. Aliquam eleifend tempus
dapibus. Pellentesque commodo,
nisi sit amet hendrerit
fringilla, ante odio porta
lacus, ut elementum justo
nulla et dolor.
*/
Imágen de perfil

Alineas texto a la derecha


JavaScript

Publicado el 12 de Enero del 2020 por Katas (200 códigos)
1.284 visualizaciones desde el 12 de Enero del 2020
Su tarea en este Kata es emular el texto justificado directamente en la fuente monoespacio. Se le dará un texto de una línea y el ancho de justificación esperado. La palabra más larga nunca será mayor que este ancho.

Estas son las reglas:
- Use espacios para llenar los espacios en el lado izquierdo de las palabras.
- Cada línea debe contener tantas palabras como sea posible.
- Use '\ n' para separar las líneas.
- La brecha entre palabras no puede diferir en más de un espacio.
- Las líneas deben terminar con una palabra, no un espacio.
- '\n' no está incluido en la longitud de una línea.
- La última línea no debe contener '\n'

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const texto="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum sagittis dolor mauris, at elementum ligula tempor eget. In quis rhoncus nunc, at aliquet orci. Fusce at dolor sit amet felis suscipit tristique. Nam a imperdiet tellus. Nulla eu vestibulum urna. Vivamus tincidunt suscipit enim, nec ultrices nisi volutpat ac. Maecenas sit amet lacinia arcu, non dictum justo. Donec sed quam vel risus faucibus euismod. Suspendisse rhoncus rhoncus felis at fermentum. Donec lorem magna, ultricies a nunc sit amet, blandit fringilla nunc. In vestibulum velit ac felis rhoncus pellentesque. Mauris at tellus enim. Aliquam eleifend tempus dapibus. Pellentesque commodo, nisi sit amet hendrerit fringilla, ante odio porta lacus, ut elementum justo nulla et dolor.";
 
result=alignRight(texto, 30);
/* devolvera:
   Lorem ipsum dolor sit amet,
  consectetur adipiscing elit.
     Vestibulum sagittis dolor
   mauris, at elementum ligula
  tempor eget. In quis rhoncus
  nunc, at aliquet orci. Fusce
       at dolor sit amet felis
     suscipit tristique. Nam a
    imperdiet tellus. Nulla eu
      vestibulum urna. Vivamus
  tincidunt suscipit enim, nec
    ultrices nisi volutpat ac.
     Maecenas sit amet lacinia
 arcu, non dictum justo. Donec
   sed quam vel risus faucibus
  euismod. Suspendisse rhoncus
   rhoncus felis at fermentum.
Donec lorem magna, ultricies a
        nunc sit amet, blandit
 fringilla nunc. In vestibulum
        velit ac felis rhoncus
pellentesque. Mauris at tellus
 enim. Aliquam eleifend tempus
dapibus. Pellentesque commodo,
       nisi sit amet hendrerit
    fringilla, ante odio porta
     lacus, ut elementum justo
               nulla et dolor.
*/
Imágen de perfil

Determine si el orden de las llaves es válido


Python

Publicado el 12 de Enero del 2020 por Katas (150 códigos)
892 visualizaciones desde el 12 de Enero del 2020
Escriba una función que tome una cadena de llaves y determine si el orden de las llaves es válido. Debería devolver verdadero si la cadena es válida, y falso si no es válida.

Todas las cadenas de entrada no estarán vacías y solo consistirán en paréntesis, corchetes y llaves: () [] {}.

¿Qué se considera válido?
Una cadena de llaves se considera válida si todas las llaves coinciden con la llave correcta.

1
2
3
4
5
6
validBraces("(){}[]") # true
validBraces("([{}])") # true
validBraces("({}[{}])") # true
validBraces("(]") # false
validBraces("[(])") # false
validBraces("[({})](]") # false
Imágen de perfil

Obtener el último valor único de una matriz según función de comparación


JavaScript

Publicado el 21 de Diciembre del 2019 por Katas (200 códigos)
766 visualizaciones desde el 21 de Diciembre del 2019
Devuelve todos los valores únicos de una matriz, en función de una función de comparación proporcionada.

Utilice Array.prototype.reduce () y Array.prototype.some () para una matriz que contenga solo la última ocurrencia única de cada valor, en función de la función de comparación, fn. La función de comparación toma dos argumentos: los valores de los dos elementos que se comparan.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uniqueElementsByRight(
  [
    { id: 0, value: 'a' },
    { id: 1, value: 'b' },
    { id: 2, value: 'c' },
    { id: 1, value: 'd' },
    { id: 0, value: 'e' }
  ],
  (a, b) => a.id == b.id
); // [ { id: 0, value: 'e' }, { id: 1, value: 'd' }, { id: 2, value: 'c' } ]
 
uniqueElementsByRight(
  [
    { id: 0, value: 'a' },
    { id: 0, value: 'b' },
    { id: 0, value: 'c' },
  ],
  (a, b) => a.id == b.id
); // [ { id: 0, value: 'c' } ]
Imágen de perfil

Dirección de un punto a otro


JavaScript

Publicado el 29 de Noviembre del 2019 por Katas (200 códigos)
921 visualizaciones desde el 29 de Noviembre del 2019
Un hombre recibe instrucciones para ir de un punto a otro. Las instrucciones eran "NORTE", "SUR", "OESTE", "ESTE". Claramente, "NORTE" y "SUR" son opuestos, y "OESTE" y "ESTE" también. Ir en una dirección y regresar en la dirección opuesta es un esfuerzo innecesario.

Hay que eliminar las posiciones opuestas para hacer el mínimo de movimientos posibles

1
2
dirReduc(["NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH", "WEST"]); // [WEST]
dirReduc(['SOUTH', 'NORTH', 'EAST', 'WEST', 'NORTH', 'SOUTH', 'NORTH', 'NORTH', 'NORTH', 'WEST', 'EAST', 'SOUTH', 'NORTH', 'EAST', 'WEST']); // ["NORTH", "NORTH", "NORTH"]