Objetivo
En vista de que la Serie Mundial está a la vuelta de la esquina, necesito un programa que pueda leer los puntajes del cuadro y decirme qué entrada es. Esto es un poco complicado porque el béisbol usa un método extraño para registrar el puntaje. No escriben el puntaje del equipo al turno para la entrada hasta que hayan anotado una carrera (y todavía estén en marcha) o hayan terminado su turno al bate. Por lo tanto, un 0 en el marcador siempre significa un final al bate. Por ejemplo:
Example A:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
Them| 0| 0| 0| 0| 0| 2| | | |
Us| 0| 0| 2| 0| 0| 0| | | |
Example B:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
Them| 0| 0| 0| 0| 0| 2| | | |
Us| 0| 0| 2| 0| 0| 1| | | |
Example C:
Inning| 1| 2| 3| 4| 5| 6| 7| 8| 9|
Them| 0| 0| 0| 0| 0| 2| | | |
Us| 0| 0| 2| 0| 0| | | | |
#Them is the Away Team, Us is the Home Team (who are the guys you root for)
- Ejemplo A: Sabemos que estamos en la parte superior de la 7ª porque Us tiene un 0 registrado en la parte inferior de la 6ª y la parte superior de la 7ª está en blanco.
- Ejemplo B: Puede ser la parte inferior de la sexta o la parte superior de la séptima.
- Ejemplo C: Puede ser la parte superior o inferior de la 6ta.
Su tarea es devolver qué entrada (s) podría ser.
Entrada
Dos listas de enteros no negativos. Se supondrá que las listas son irregulares, ya que la lista del equipo visitante es del mismo tamaño o un elemento más grande en comparación con el equipo local. Puede tomar los puntajes en cualquier orden pero indicar su respuesta si no usa el valor predeterminado. Es decir, Equipo Visitante y luego Equipo Local (predeterminado), o Equipo Local y luego Equipo Visitante (invertido). También se pueden rellenar con datos ficticios si lo desea, indique su respuesta si lo hace.
Salida
Una cadena o algo equivalente que identifica el número de entrada y si es la parte superior o inferior. Por ejemplo 7B 8T
, B7 T8
, ['7B','8T']
son todos muy bien. Si hay dos respuestas, debe generar ambas. Sin embargo, el formato es bastante flexible.
Reglas
- La entrada siempre será válida
- Los juegos pueden entrar en entradas extras indefinidas. Su programa debería ser capaz de soportar hasta 255 entradas.
- Las lagunas estándar están prohibidas
- Este es el código de golf, por lo que el código más corto gana
Casos de prueba
#Input:
[[],
[]]
#Output: 1T
#Input:
[[0],
[]]
#Output: 1B
#Input:
[[0,0,0,1],
[0,0,0,0]]
#Output: 5T
#Input:
[[0,0,0,1],
[0,0,0,1]]
#Output: 4B, 5T
#Input:
[[0,0,0,1,0,0,1,0,0,1],
[0,0,0,0,1,0,0,1,0,1]]
#Output: 10B, 11T
#Input:
[[0,0,0,1],
[0,0,0]]
#Output: 4T, 4B
#Input:
[[0,0,0,0],
[0,0,0]]
#Output: 4B
Respuestas:
C (gcc) , 50 bytes
Toma la entrada como un puntero a una lista intercalada (es decir
{them#1, us#1, them#2,...}
).Devuelve una opción por modificación y la otra por valor de retorno.
Los valores negativos indican la parte inferior de la entrada, los valores positivos indican la parte superior de la entrada. Los ceros están "vacíos". El valor absoluto de la salida es el número de la entrada. Entonces,
-4,5
indica que las posibilidades son la parte superior de la quinta y la parte inferior de la cuarta, e1,0
indica que la única posibilidad es la parte superior de la primera.El valor de retorno de la macro se puede usar para determinar si hay una o dos entradas posibles; El valor de retorno es
0
si no hay otra entrada. De lo contrario, es el número de la entrada.Cero bytes de código fuente. Use lo siguiente como indicador de preprocesador:
Pruébalo en línea!
Degolf
fuente
Perl 6 ,
52 4845 bytes-3 bytes gracias a alguna reestructuración de nwellnhof!
Pruébalo en línea!
Bloque de código anónimo que toma la entrada como dos listas, arriba y abajo. La salida es una lista de tuplas, donde el primer elemento es el número de entrada y el segundo elemento es Verdadero o Falso, correspondiente a Inferior o Superior.
Explicación:
fuente
R ,
10396 bytesPruébalo en línea!
¡@digEmAll ahorró 7 bytes!
Toma dos vectores de
listascomo entrada y genera uno o dos enteros que representan las posibles entradas. Los enteros positivos son la parte superior de la entrada, y los enteros negativos son la parte inferior de la entrada.En R, los enteros positivos son verdaderos, por lo que puedo usar la diferencia de longitudes como primer argumento
if()
.fuente
[[
comoif
reemplazo ya que lo usa[
en su código.<
y^
. Creo que[
fue el que usé en el ejemplo que recuerdo.'if'
(y eliminar{}
y moverf=
fuera): 96 bytesJavaScript (Node.js) , 75 bytes
Pruébalo en línea!
fuente
Jalea , 11 bytes
Pruébalo en línea!
Primer elemento: índice de columna basado en 0.
Segundo elemento:
0
para arriba,1
para abajo.La salida es una lista de uno o dos pares como se especifica anteriormente (prettified para mostrarlo mejor). Las entradas de salida están en orden inverso.
fuente
Python 2 ,
135129126125123119 bytesPruébalo en línea!
-1 con agradecimiento a @ovs
-4 gracias de nuevo a @ovs
fuente
if d else"11BT"[c<1::2]
para -3if d
Puedo ver (¡no debería haberme perdido eso!) Peroelse"11BT"[c<1::2]
no me sale más corto a menos que me falte algo.if d
todos modos.if d
hacerloif b
, entonces no es necesario almacenarlen(b)
en variable.d
para[d<c]
. No puedo ver una forma de evitar eso. ¿Algunas ideas?Python 2 , 65 bytes
Pruébalo en línea!
Imprime dos líneas, primero la posibilidad de entrada inferior y luego la superior, como una lista única. Si ninguno de los dos es posible, esa lista está vacía.
fuente
Limpio ,
8475 bytesPruébalo en línea!
Define la función
@ :: [Int] [Int] -> (Int, Int)
y algunos ayudantes.Da salida en la forma
(Top, Bottom)
donde un cero significa una posibilidad nula.fuente