Wir definieren Whitespace als eines der drei Zeichen, Tabulator (0x09), Zeilenvorschub (0x0A) oder Leerzeichen (0x20).
Für diese Herausforderung müssen Sie zwei Programme oder Funktionen in derselben Programmiersprache schreiben, die die folgenden Aufgaben ausführen:
Zählen Sie die Leerzeichen in einer bestimmten Zeichenfolge. Zum Beispiel die Eingabe
123 -_- abc def
würde 7 zurückgeben (vorausgesetzt, es gibt keinen nachgestellten Zeilenumbruch).
Teilen Sie eine bestimmte Zeichenfolge bei aufeinanderfolgenden Leerzeichenfolgen. Wenn die Zeichenfolge mit Leerzeichen beginnt oder endet, sollten an den Enden keine leeren Zeichenfolgen zurückgegeben werden. Zum Beispiel die gleiche Eingabe
123 -_- abc def
würde zurückkehren
["123", "-_-", "abc", "def"]
.
In beiden Fällen können Sie eine Eingabe über STDIN, ein Befehlszeilenargument oder ein Funktionsargument vornehmen und das Ergebnis zurückgeben oder es STDOUT ausgeben. Wenn Sie für das zweite Programm auf STDOUT drucken möchten, drucken Sie bitte jede Zeichenfolge in einer eigenen Zeile ohne umgebende Anführungszeichen.
Bei beiden Programmen können Sie davon ausgehen, dass die Eingabe nur druckbares ASCII (0x20 bis 0x7E) und Leerzeichen enthält.
Hier ist der Haken:
- Wenn alle Leerzeichen aus beiden Programmen / Funktionen entfernt werden, müssen die resultierenden Zeichenfolgen identisch sein. Das heißt, Ihre beiden Einreichungen unterscheiden sich möglicherweise nur in der Anzahl und der Platzierung von Leerzeichen.
- Weder Programm noch Funktion dürfen Zeichenfolgen- oder Regex-Literale enthalten (Zeichenliterale sind in Ordnung, vorausgesetzt, Ihre Sprache verfügt über einen bestimmten Zeichentyp).
- Weder Programm noch Funktion dürfen Kommentare enthalten.
- Sie dürfen den Quellcode des Programms weder direkt noch indirekt lesen.
Das ist Code Golf. Ihre Punktzahl ist die Summe der Größen beider Lösungen (in Bytes). Die niedrigste Punktzahl gewinnt.
Bestenlisten
Das folgende Stack-Snippet generiert sowohl eine reguläre Rangliste als auch eine Übersicht der Gewinner nach Sprache. Also, auch wenn Sie mit der Sprache Ihrer Wahl nicht die gesamte Herausforderung gewinnen können, warum nicht versuchen, einen Platz auf der zweiten Liste zu ergattern? Es würde mich sehr interessieren, wie die Leute diese Herausforderung in einer Vielzahl von Sprachen angehen!
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
# Language Name, N bytes
wo N
ist die Gesamtgröße Ihrer Vorlage. Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Sie können auch die einzelnen Zählungen vor der Gesamtzählung angeben, z
# Python 2, 35 + 41 = 76 bytes
Die letzte Nummer, die nicht durchgestrichen ist, wird vom Snippet verwendet.
<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>