Bienvenido a su primer día en PPCG Inc. Como nuestro nuevo clasificador de documentos de asistente junior, usted es responsable de asegurarse de que todos los documentos que le enviamos estén archivados en orden alfabético. Es tan fácil que un mono puede hacerlo. Bueno, metafóricamente hablando, ya que contratamos a un mono para hacerlo. ¿Adivina qué? Resulta que los monos carecen de una comprensión de nuestro alfabeto. De todos modos, no hay tiempo para arreglar el desorden que hay ahora, así que trata de no empeorar la situación, ¿de acuerdo? ¡Entonces consíguelo! Si tienes hambre, hay plátanos junto al enfriador de agua. ¡Buena suerte!
Descripción del trabajo
Entrada
- Recibirá una lista de cadenas (el archivo) y una cadena que debe agregarse a esa lista (el documento)
- Todas las cadenas contendrán solo letras mayúsculas, minúsculas y espacios
- Las cadenas siempre comenzarán y terminarán con una letra
Tarea
Determine la posición de destino del documento: la posición que debe recibir en el archivo. La posición objetivo se puede determinar de la siguiente manera:
- Para cada puesto:
- Cuente la cantidad de cadenas en el archivo antes de esa posición que están alfabéticamente antes del documento
- Cuente la cantidad de cadenas en el archivo después de esa posición alfabéticamente después del documento
- Defina el puntaje de la posición como la suma de los dos conteos anteriores
- La posición de destino del documento es la posición con la puntuación más alta.
- En caso de empate, todas las posiciones con la puntuación más alta son igualmente válidas que la posición objetivo. Solo uno necesita ser seleccionado.
Al ordenar:
- Las letras mayúsculas y minúsculas son equivalentes
- Los espacios van antes que las letras
Salida
- El archivo con el documento agregado en cualquier forma
O
- La posición de destino del documento, ya sea en un índice basado en 0 o en 1
Evaluación del trabajo
¡Pocos bytes ganan!
Ejemplo de E / S
Archive:
Applebuck Season
Friendship is Magic
The Ticket Master
Griffon the BrushOff
Boast Busters
Bridle Gossip
Document: Dragonshy
Position scores (0-based index):
0: 0 + 3 = 3
1: 1 + 3 = 4
2: 1 + 2 = 3
3: 1 + 1 = 2
4: 1 + 0 = 1
5: 2 + 0 = 2
6: 3 + 0 = 3
Target position: 1
Respuestas:
JavaScript (ES6), 81 bytes
Sin golf:
Editar: ahorró muchos bytes gracias a @ user81655.
fuente
indexOf
con una variable de resultado que se establece durante el mapa también sería más corto.Pyth,
4038 bytesCréditos a @Katenkyo por enseñarme eso
A xnor B
es básicamenteA==B
. (A xor B
es tambiénA!=B
)Pruébalo en línea!
Cómo funciona:
Suma el XNOR de si la entrada es más pequeña que el documento y si el índice de la entrada es más pequeño que el índice del documento.
Encuentra la posición en la que esta suma es la máxima, luego la genera.
fuente
Python 3,
135167 Bytesfuente
Ruby, 97 bytes
Función anónima, devuelve la posición de destino.
Cuando realmente se inserta en el archivo, 110 bytes :
fuente
Pyth,
54524745 bytesLa entrada esperada es una lista, el primer elemento es una lista de cadenas (archivo), el segundo elemento es una cadena (documento)
Prueba aquí
fuente
0
que si estoy leyendo su código correctamente puede ahorrarle un espacio["Applebuck Season","Friendship is Magic","The Ticket Master","Griffon the BrushOff","Boast Busters","Bridle Gossip"]\n "Dragonshy"
como entrada y usar enE
lugar de@Q0
y@Q1
puede ahorrarle cuatro bytes.AQ
lugar deJ@Q0K@Q1
.MATL , 32 bytes
La entrada es un conjunto de celdas de cadenas (varias cadenas separadas por espacios y encerradas entre llaves) para el archivo y una cadena para el documento. La salida está basada en 1. En caso de empate se devuelve la primera posición.
Pruébalo en línea!
Explicación
fuente