Reglas
En este desafío, voy a redefinir un poco la definición de "citas".
Las comillas ( comillas AKA ) son caracteres idénticos utilizados en pares en varios sistemas de escritura para activar el discurso directo, una cita o una frase. El par consta de una comilla de apertura y una comilla de cierre, que es el mismo carácter (distingue entre mayúsculas y minúsculas).
Si hay pares de comillas superpuestos entre sí,
- Si un par anida a otro, ambos pares siguen siendo válidos.
- Si un par no anida a otro, el primer par inicial sigue siendo válido. El otro ya no se considera como un par.
Al contar los caracteres entre comillas (longitud de un par de comillas),
- Las citas en sí mismas no cuentan.
- La longitud de cada par se cuenta de forma independiente. La superposición no afecta a otro.
Objetivo
Su objetivo es imprimir la longitud total de todas las cotizaciones válidas. Este es el código de golf, por lo tanto, gana el código con la menor cantidad de bytes.
Ejemplos
Legend:
<foo>: Valid quotes
^ : Cannot be paired character
Input : ABCDDCBA
`A` (6): <BCDDCB>
`B` (4): <CDDC>
`C` (2): <DD>
`D` (0): <>
Output : 12
Input : ABCDABCD
`A` (3): <BCD>
`B` (0): ^ ^
`C` (0): ^ ^
`D` (0): ^ ^
Output : 3
Input : AABBBBAAAABA
`A` (0): <> <><> ^
`B` (0): <><> ^
Output : 0
Input : ABCDE
Output : 0
Input : Print the total length of all "quoted" characters
`r` (40): <int the total length of all "quoted" cha>
`n` (14): <t the total le>
`t` (15): < > <o> <h of all "quo>
` ` (7): ^ <total> <of> ^ ^
`h` (0): ^ ^ ^
`e` (8): < total l> ^ ^
`o` (0): ^ ^ ^
`a` (0): ^ ^ ^ ^
`l` (0): ^ ^ <>
`"` (0): ^ ^
`c` (0): ^ ^
Output : 84
Input : Peter Piper picked a peck of pickled peppers
`P` (5): <eter >
`e` (9): <t> ^ <d a p> <d p> ^
`r` (0): ^ ^
` ` (3): ^ ^ <a> <of> ^
`i` (5): <per p>
`p` (3): <er > ^ ^ ^ <>
`c` (8): <ked a pe> ^
`k` (7): ^ < of pic>
`d` (0): ^ ^
Output : 40
Input : https://www.youtube.com/watch?v=dQw4w9WgXcQ
`h` (27): <ttps://www.youtube.com/watc>
`t` (0): <> ^ ^
`/` (0): <> ^
`w` (14): <><.youtube.com/> <4>
`.` (7): <youtube>
`o` (0): ^ ^
`u` (1): <t>
`c` (0): ^ ^ ^
`Q` (8): <w4w9WgXc>
Output : 57
Respuestas:
Jalea , 12 bytes
Pruébalo en línea!
fuente
APL (Dyalog Unicode) , SBCS de 36 bytes
Programa completo Solicita la entrada de stdin.
Pruébalo en línea!
t←⍬
configurar un acumuladort
(para t otal)⍞⊣
descartar eso a favor de la entrada de cadena desde stdin (símbolo: cita en la consola){
…}⍣≡
Aplique la siguiente lambda anónima hasta que sea estable (punto fijo; anterior ≡ siguiente)⊢⍵
en el argumento…
⎕S'\2'
PCRE S earch para lo siguiente, devolviendo el grupo 2 para cada partido:(.)
cualquier carácter (llamaremos a este grupo 1)(.*?)
tan pocos caracteres como sea posible (llamaremos a este grupo 2)\1
el carácter del grupo 1t,←
actualizart
agregando eso alt
valor actual det⊣
descartar eso (la lista final de no coincidencias) a favor det
≢
contar el número de caracteres en esefuente
Ruby , 49 bytes
Solución recursiva. Encuentre grupos de citas, cuente sus longitudes y luego busque recursivamente las longitudes de los subgrupos y sume todo.
Pruébalo en línea!
fuente
JavaScript (ES6), 64 bytes
Pruébalo en línea!
Comentado
fuente
JavaScript (Node.js) ,
656462 bytesPruébalo en línea!
Enfoque original (64 bytes):
Pruébalo en línea!
fuente
Brain-Flak , 100 bytes
Pruébalo en línea!
Comentado
fuente
Jalea , 17 bytes
Pruébalo en línea!
Un programa completo que toma un solo argumento, la cadena de entrada envuelta en una lista, y devuelve el número de comillas como un entero.
fuente