Una bolsa , también llamada multiset, es una colección desordenada. Puede llamarlo un conjunto que permite duplicados, o una lista (o una matriz) que no está ordenada / indexada. En este desafío, se le pide que implemente operaciones de bolsa: prueba de suma, diferencia, multiplicación, división, conteo e igualdad.
Operaciones
Las operaciones especificadas pueden no ser convencionales.
- Además combina dos bolsas en una, conservando el número total de cada valor
[1,2,2,3] + [1,2,4] = [1,1,2,2,2,3,4] - la diferencia elimina de una bolsa cada elemento de otra bolsa, o no hace nada si no existe tal elemento
[1,2,2,4] - [1,2] = [2,4][1,2,3] - [2,4] = [1,3] - multiplicación multiplica cada elemento en la bolsa.
[1,2,3,3,4] * 3 = [1,1,1,2,2,2,3,3,3,3,3,3,4,4,4]2 * [1,3] = [1,1,3,3] - la división es poco común: cada n elementos iguales se colocan en n bolsas nuevas iguales, los elementos que no pueden formar un grupo n permanecen en la bolsa. Devuelva cualquiera de las n bolsas nuevas.
[1,1,2,2,2] / 2 = [1,2][1,2,2,3,3,3] / 3 = [3] - contar cuenta cuántas bolsas divisorias se pueden producir a partir de la bolsa de dividendos
[1,1,2,2,2,2,3,3,3] c [1,2,3] = 2 - la prueba de igualdad verifica si dos bolsas tienen los mismos números de cada elemento
[1,2,2,3] == [3,2,1,2] = truthy[1,2,3] == [1,2,2,3] = falsy(también se puede usar=para esto)
Si está utilizando sus propios símbolos para los operadores, especifique.
Formatos
Las bolsas se mostrarán como listas del formulario [1,1,2,3,4]. Puede usar cualquier otro soporte que no sea cuadrado, o incluso usar comillas, o nada en absoluto. Los elementos serán enteros (matemáticamente, no necesariamente int) para el propósito de esta pregunta. Las bolsas no tienen que ser clasificadas.
El formato de entrada será dos bolsas o una bolsa y un número entero, con un operador. Puede especificar su propio formato siempre que contenga estos tres.
El formato de salida debe ser una sola bolsa del mismo formato.
Reglas
- no puede utilizar funciones, operaciones o bibliotecas integradas (incluida la biblioteca estándar) que ya las implementa; Sin embargo, está bien usar la concatenación y multiplicación de listas, ya que son, por definición, operaciones de lista, no operaciones de bolsa (que básicamente hacen lo mismo)
- se aplican las lagunas estándar
- la respuesta más corta gana
Casos de prueba
[1,2,2,3] + [1,2,4]
[1,1,2,2,2,3,4]
[1,2,2,4] - [1,2]
[2,4]
[1,2,3] - [2,4]
[1,3]
[1,2,3,3,4] * 3
[1,1,1,2,2,2,3,3,3,3,3,3,4,4,4]
2 * [1,3]
[1,1,3,3]
[1,1,2,2,2] / 2
[1,2]
[1,2,2,3,3,3] / 3
[3]
[1,1,2,2,2,2,3,3,3] c [1,2,3]
2
[3,2,1,2] == [1,2,2,3]
truthy
[1,2,3] == [1,2,2,3]
falsy