Скільки символів міститься на піктограмі сайту Stack Exchange?


19

З огляду на назву сайту Stack Exchange, який ще не має власного дизайну, вирішіть, скільки символів ASCII (не ASCII рахуються окремо) на їхніх іконках. Ваш код повинен відрізняти ці 4 випадки:

1 персонаж:

Astronomy
Beer
Freelancing
Health
History
Law
Music: Practice & Theory
Parenting
The Great Outdoors
Writers

2 символи:

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 символи:

Cognitive Sciences
elementary OS
Ethereum
History of Science and Mathematics
Linguistics
Open Source
Programming Puzzles & Code Golf
Signal Processing
Tor

Non-ASCII:

Anime & Manga
Arduino
Aviation
Chess
CiviCRM
Poker

Виключено в цьому виклику за те, що в своїх іменах не входять символи, що не належать ASCII:

LEGO® Answers
Русский язык

Ваш код повинен виводити послідовне чітке значення для кожного з 4 наборів. Кожен висновок (або його рядкове представлення для нерядкових значень, повернутих з функції), повинен бути не більше 10 байт, не враховуючи необов'язковий кінцевий новий рядок.

Ви можете створити кілька фрагментів коду однією мовою. Результатом подання вами вважається вихід кожного фрагмента коду, з'єднаного у фіксованому порядку (тому ви можете використовувати Regex).

Найкоротший код виграє.


Це шви, як
регекс-

Або це може бути аналіз зображення за допомогою фавікону, враховуючи, що "Аніме та Манга" мають японський характер у цьому логотипі - значить, він знаходиться у списку "Не ASCII".
Кріс Дж

@ChrisJ Ви не повинні мати доступ до Інтернету для цього завдання. Це може бути інше питання ...
jimmy23013

Персонаж на Аніме та Манга, очевидно, є . Але нелегко сперечатися, чи є справа в Авіації . Тому я вирішив слідувати найпростішим шляхом.
jimmy23013

Отже, ми вводимо ім'я та виводимо кількість символів ascii?
GamrCorps

Відповіді:


6

CJam, 50 48 45 байт

l22b391"þÁ "+{i%}/"Yª>Þÿ9cîÂcVáòe~"322b4b=

У рядках вище є недруковані символи, які можна отримати за фрагментами

[254 193 160]:c
[89 170 62 222 30 255 20 57 99 238 194 99 86 225 242 101 126 20]:c

Це також показує, що всі кодові точки нижче 256. Вихідні дані 0для 1 літери, 1для 2 літер, 2для 3 літер та 3для не ASCII.

Програма просто перетворює рядок введення в базове число 22, виконує серію модулів, щоб зменшити число вниз, перед тим як здійснити пошук з кодованої таблиці base-4.

Спробуйте в Інтернеті | Тестовий набір


1
Ти брешеш! У Open Source є 3 букви! Як ти міг це зробити на моєму сайті! Я ... я ... я розбита!
Zizouz212

@ Zizouz212 0123Виходи не відповідають кількості букв кожна. Під "відповідно" я мав на увазі порядок, вказаний в ОП, так 0це 1 лист, 12 букви, 23 букви і 3не є ASCII. Так, заплутано, але це був найголовніший вибір виходу.
Sp3000

4

Сітківка, 146 136 134 130 124 107 102 байт

A\w*i|Che|CR|ke
4
my|Be|lan|^H.*y$|lt|aw|:|Pa|Ou|Wr
1
gn.|^e|Et|^H.*S|gui|rc|lf|To
2
.*(\d).*
$1
..+
3

Дякуємо @ Sp3000 за те, що ти граєш на 4 байти!
Дякуємо @ Mwr247 за те, що ти граєш на 17 байт, дозволяючи мені використовувати регулярні вирази з його відповіді !
Дякуємо @ jimmy23013 за те, що ти граєш на 5 байт, нагадуючи мені, що я можу змінити вихідні значення!

Вихід становить 1, 3, 2 і 4 для 1-char, 2-char, 3-char та non-ASCII відповідно.

Версія з усіма тестовими прикладами має зміни в декількох місцях, щоб вона працювала з кількома рядками.

Спробуйте в Інтернеті!
Спробуйте в Інтернеті з усіма тестами!


@ Sp3000 О ... так, дякую! Не помічав цього. Це те, що відбувається, коли ви надто швидко набираєте текст і не перевіряєте його належним чином, я думаю. Я можу навіть i?(ni|vi) -> [nv]?iзараз.
daavko

1
У моїй відповіді JS є досить компактні регулярні вирази. Сміливо користуйтеся ними, якщо вони допоможуть;)
Mwr247

1
@ Mwr247 Спасибі, я думаю, я буду їх використовувати.
daavko

1
Я думаю, ви можете вивести 3 для 2-х карт, щоб позбутися від (?!D).
jimmy23013

@ jimmy23013 Це має сенс ... Я якось забув, що можу переміщувати вихідні значення.
daavko

2

Javscript ES6, 342 339 330 327 байт

a=>{for(c of "9As4BebFr6He7Hi3LaoMu9PaiTh7Wrzb3DdAmlBi7BiiBo8BugCh6CoiColCohCocDadEa6Eb9Ec5EmbEnbExfFrnGaqGefGeoHa8HibHo5IsgIthJa6Jo9LicMalMayMoaMu9My9OplPe4PeaPhgPh8PojPoiPr8PukQujRe8RogRu10SooSocSohSpgSp6Sp8StiSu7TraVigVidWibWodWoziCodel8EtyHibLibOpvPrhSi3To".split`z`)if(~c.indexOf(a.length.toString(36)+a[0]+a[1]))return c}

Повертає довгий рядок, починаючи з 9одного символу, інший довгий рядок, починаючи з bдвох, третій рядок, починаючи з iтрьох, і просто undefinedдля non-ascii.


Чи є десь перевірити це? Я виявив серію актів зради проти Відкритого коду ...
Zizouz212

@ Zizouz212 ось скрипка: jsfiddle.net/fpt60bpg
SuperJedi224

Це тільки я, чи я не можу змусити його працювати?
Zizouz212

Здається, це працює для мене.
SuperJedi224

1

PowerShell, 212 181 байт

$a=-join$args[0][0,2,-1];$b="Aty,Ber,Feg,Hah,Hsy,Lww,Msy,Prg,Tes,Wis,Cgs,eeS,Ehm,Hss,Lns,Oee,Pof,Sgg,Trr,Aia,Ado,Ain,Ces,CvM,Pkr".IndexOf($a);(((1,3)[$b-ge40],4)[$b-ge76],2)[$b-lt0]

Я виявив, що якщо ви візьмете перший, третій та останній символи кожного з можливих записів ( [0,2,-1]коли індексовано нуль), ми отримаємо унікальний трибуквенний рядок для кожного запису. Потім ми просто використовуємо пошук на основі рядків, щоб визначити, який у нас є.

Бере введення $args[0]та застосовує вищевказану функцію унікальності, зберігає як $a.

Потім він надсилається через наш список пошуку через, .IndexOf($a)а результат зберігається в $b. Потім ми проходимо через псевдотермінал, який індексує на основі значення $bдля виведення відповідного значення.

Виходи 1, 2, 3, і в 4протягом одного-символу, два-символу, що складається з трьох символів, що не ASCII, відповідно.

Редагувати - виявлено, що [0,2,-1]створює унікальний трисимвольний рядок для кожного запису, економивши 31 байт


2
Я бачу, що у вас "кава" тверда. Мій мозок теж.
dotancohen

Чи є місце, де я можу це перевірити?
Zizouz212

@ Zizouz212 Будь-який комп'ютер з Windows. Існує також це , але це, здається, не працює, і, мабуть, це PASH, а не PowerShell належним чином.
Боб

@ Zizouz212 PowerShell є псевдо-власником, оскільки це лише для Windows. Є безкоштовні способи встановлення віртуалізованої Windows (версії для оцінювання, версії для розробників тощо), якщо ви користувач FOSS. PASH є сумішшю PowerShell та BASH з відкритим кодом, але він інженерно-конструкторський, а не прямий, і реалізує лише близько 40% функцій PowerShell v1, тому він досить обмежений.
AdmBorkBork

1

JavaScript (ES6), 108 байт

a=>[/A\w*i|Che|CR|ke/,/my|Be|lan|^H.*y$|lt|aw|:|Pa|Ou|Wr/,/gn.|^e|Et|^H.*S|gui|rc|lf|To/].map(b=>+b.test(a))

Створює масив, складений з регулярних виразів, які відповідають унікальній для кожної з трьох найменших груп (1 символ, 3 символи та non-ascii), а потім відображає тест на дані для кожного масиву. Коли виведення є строковим, воно оцінюється як 1,0,0для не-ascii, 0,1,0для 3 символів, 0,0,1для 1 символу та 0,0,0для 2 символів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.