Entscheiden Sie anhand des Namens einer Stack Exchange-Site, die noch kein eigenes Design hat, wie viele ASCII-Zeichen (Nicht-ASCII-Zeichen werden separat gezählt) sich auf ihren Symbolen befinden. Ihr Code sollte diese 4 Fälle unterscheiden:
1 Zeichen:
Astronomy
Beer
Freelancing
Health
History
Law
Music: Practice & Theory
Parenting
The Great Outdoors
Writers
2 Zeichen:
3D Printing
Amateur Radio
Biblical Hermeneutics
Bitcoin
Board & Card Games
Buddhism
Chinese Language
Coffee
Community Building
Computational Science
Computer Graphics
Data Science
Earth Science
Ebooks
Economics
Emacs
Engineering
Expatriates
French Language
Gardening & Landscaping
Genealogy & Family History
German Language
Hardware Recommendations
Hinduism
Homebrewing
Islam
Italian Language
Japanese Language
Joomla
Lifehacks
Martial Arts
Mathematics Educators
Motor Vehicle Maintenance & Repair
Music Fans
Mythology
Open Data
Personal Productivity
Pets
Philosophy
Physical Fitness
Politics
Portuguese Language
Project Management
Puzzling
Quantitative Finance
Reverse Engineering
Robotics
Russian Language
Software Quality Assurance & Testing
Software Recommendations
Sound Design
Space Exploration
Spanish Language
Sports
Startups
Sustainable Living
Tridion
Vi and Vim
Video Production
Windows Phone
Woodworking
Worldbuilding
3 Zeichen:
Cognitive Sciences
elementary OS
Ethereum
History of Science and Mathematics
Linguistics
Open Source
Programming Puzzles & Code Golf
Signal Processing
Tor
Nicht-ASCII:
Anime & Manga
Arduino
Aviation
Chess
CiviCRM
Poker
Ausgenommen von dieser Herausforderung, da der Name Nicht-ASCII-Zeichen enthält:
LEGO® Answers
Русский язык
Ihr Code sollte für jeden der 4 Sätze einen konsistenten unterschiedlichen Wert ausgeben. Jede Ausgabe (oder ihre Zeichenfolgendarstellung für Nicht-Zeichenfolgenwerte, die von einer Funktion zurückgegeben werden) sollte nicht länger als 10 Byte sein, wobei die optionale nachgestellte Zeile nicht berücksichtigt wird.
Sie können mehrere Codeteile in derselben Sprache erstellen. Die Ausgabe Ihrer Übermittlung wird als Ausgabe jedes in einer festen Reihenfolge verketteten Codeteils betrachtet (Sie können also Regex verwenden).
Kürzester Code gewinnt.
quelle
画
. Aber es ist nicht leicht zu streiten, ob die Sache mit der Luftfahrt eine ist✈
. Also beschloss ich, den einfachsten Weg zu gehen.Antworten:
CJam,
504845 BytesIn den obigen Zeichenfolgen sind nicht druckbare Zeichen enthalten, die mit den Ausschnitten abgerufen werden können
Dies zeigt auch, dass die Codepunkte alle unter 256 liegen. Die Ausgabe erfolgt
0
für 1 Buchstabe,1
für 2 Buchstaben,2
für 3 Buchstaben und3
für Nicht-ASCII.Das Programm konvertiert einfach die Eingabezeichenfolge in eine Zahl zur Basis 22, führt eine Reihe von Modulen durch, um die Zahl nach unten zu reduzieren, bevor eine Suche aus einer Base-4-codierten Tabelle durchgeführt wird.
Probieren Sie es online aus | Testsuite
quelle
0123
Ausgaben entsprechen nicht der Anzahl der Buchstaben. Mit "bzw." bezog ich mich auf die im OP aufgeführte Reihenfolge,0
ist also 1 Buchstabe,1
ist 2 Buchstaben,2
ist 3 Buchstaben und3
ist nicht-ASCII. Verwirrend, ja, aber es war die golferischste Ausgabewahl.Retina,
146136134130124107102 BytesDanke @ Sp3000 für das Golfen mit 4 Bytes!
Vielen Dank an @ Mwr247, dass ich 17 Bytes weggolfen habe, indem ich Regexe aus seiner Antwort verwenden durfte !
Vielen Dank an @ jimmy23013, dass Sie 5 Byte abgespielt haben, indem Sie mich daran erinnert haben, dass ich die Ausgabewerte ändern kann!
Die Ausgabe ist 1, 3, 2 und 4 für 1-Zeichen, 2-Zeichen, 3-Zeichen bzw. Nicht-ASCII.
Die Version mit allen Testfällen wurde an wenigen Stellen bearbeitet, damit sie mit mehreren Zeilen funktioniert.
Probieren Sie es online!
Probieren Sie es online mit allen Testfällen!
quelle
i?(ni|vi) -> [nv]?i
jetzt.(?!D)
.Javscript ES6,
342339330327 BytesGibt eine lange Zeichenfolge zurück, die mit
9
einem Zeichen beginnt , eine andere lange Zeichenfolge, die mitb
zwei Zeichen beginnt , eine dritte Zeichenfolge, die miti
drei Zeichen beginnt , und einfachundefined
für Nicht-ASCII-Zeichen.quelle
Power,
212181 BytesIch habe festgestellt, dass, wenn Sie das erste, dritte und letzte Zeichen jedes der möglichen Einträge nehmen (
[0,2,-1]
bei Indexierung auf Null) nehmen, wir für jeden Eintrag eine eindeutige Zeichenfolge mit drei Buchstaben erhalten. Wir verwenden dann einfach eine stringbasierte Suche, um festzustellen, welche wir haben.Übernimmt die Eingabe
$args[0]
und wendet die oben genannte Eindeutigkeitsfunktion an und speichert unter$a
.Dies wird dann über unsere Suchliste gesendet
.IndexOf($a)
und das Ergebnis in gespeichert$b
. Dann durchlaufen wir ein Pseudoternäres, das basierend auf dem Wert von indiziert$b
indexiert wird, um den entsprechenden Wert auszugeben.Ausgänge
1
,2
,3
, und4
für ein Zeichen, zwei Zeichen, drei Zeichen, nicht-ASCII, respectively.Bearbeiten - Es wurde festgestellt, dass
[0,2,-1]
für jeden Eintrag eine eindeutige Zeichenfolge mit drei Zeichen erstellt wird, wodurch 31 Byte gespart werdenquelle
JavaScript (ES6), 108 Byte
Erstellt ein Array, das aus Regex-Übereinstimmungen besteht, die für jede der drei kleinsten Gruppen eindeutig sind (1 Zeichen, 3 Zeichen und Nicht-ASCII), und ordnet anschließend die Daten für jedes Array einem Test zu. Wenn die Ausgabe stringifiziert ist, wird sie
1,0,0
für Nicht-ASCII-0,1,0
Zeichen,0,0,1
für 3 Zeichen, für 1 Zeichen und0,0,0
für 2 Zeichen ausgewertet .quelle