Definimos el espacio en blanco como cualquiera de los tres caracteres, tabulación (0x09), nueva línea (0x0A) o espacio (0x20).
Para este desafío, debe escribir dos programas o funciones en el mismo lenguaje de programación, que realizan las siguientes tareas:
Cuente los caracteres de espacio en blanco en una cadena dada. Por ejemplo, la entrada
123 -_- abc def
devolvería 7 (siempre que no haya una nueva línea final).
Dividir una cadena dada en ejecuciones consecutivas de espacios en blanco. Si la cadena comienza o termina con espacios en blanco, no se deben devolver cadenas vacías en los extremos. Por ejemplo, la misma entrada
123 -_- abc def
Volvería
["123", "-_-", "abc", "def"]
.
En cualquier caso, puede ingresar datos a través de STDIN, argumento de línea de comando o argumento de función para devolver el resultado o imprimirlo STDOUT. Para el segundo programa, si elige imprimir en STDOUT, imprima cada cadena en su propia línea, sin comillas.
Para ambos programas, puede suponer que la entrada contiene solo ASCII imprimible (0x20 a 0x7E) y espacios en blanco.
Ahora aquí está la trampa:
- Si se elimina todo el espacio en blanco de ambos programas / funciones, las cadenas resultantes deben ser idénticas. Es decir, sus dos presentaciones solo pueden diferir en el número y la ubicación de los espacios en blanco.
- Ningún programa / función puede contener cadenas o expresiones literales regulares (los literales de caracteres están bien, siempre que su idioma tenga un tipo de carácter designado).
- Ningún programa / función puede contener comentarios.
- No debe leer el código fuente del programa, directa o indirectamente.
Este es el código de golf. Su puntaje es la suma de los tamaños de ambas soluciones (en bytes). La puntuación más baja gana.
Tablas de clasificación
El siguiente fragmento de pila genera una tabla de clasificación regular y una descripción general de los ganadores por idioma. Entonces, incluso si su idioma de elección no le permite ganar el desafío completo, ¿por qué no tratar de obtener un lugar en la segunda lista? ¡Me interesaría mucho ver cómo las personas abordan este desafío en una variedad de idiomas!
Para asegurarse de que su respuesta se muestre, comience con un título, utilizando la siguiente plantilla de Markdown:
# Language Name, N bytes
¿Dónde N
está el tamaño total de su envío? Si mejora su puntaje, puede mantener los puntajes antiguos en el título, tachándolos. Por ejemplo:
# Ruby, <s>104</s> <s>101</s> 96 bytes
También puede incluir los recuentos individuales antes del recuento total, p. Ej.
# Python 2, 35 + 41 = 76 bytes
El último número que no se tacha será utilizado por el fragmento.
<script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>site = 'meta.codegolf',postID = 5314,isAnswer = true,QUESTION_ID = 42253;jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)<\\/code><\/pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>