Dado o nome de um site do Stack Exchange que ainda não possui um design próprio, decida quantos caracteres ASCII (caracteres não ASCII são contados separadamente) existem em seus ícones. Seu código deve distinguir esses 4 casos:
1 caractere:
Astronomy
Beer
Freelancing
Health
History
Law
Music: Practice & Theory
Parenting
The Great Outdoors
Writers
2 caracteres:
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 caracteres:
Cognitive Sciences
elementary OS
Ethereum
History of Science and Mathematics
Linguistics
Open Source
Programming Puzzles & Code Golf
Signal Processing
Tor
Não ASCII:
Anime & Manga
Arduino
Aviation
Chess
CiviCRM
Poker
Excluído neste desafio por ter caracteres não ASCII em seus nomes:
LEGO® Answers
Русский язык
Seu código deve gerar um valor distinto consistente para cada um dos 4 conjuntos. Cada saída (ou sua representação de string para valores não string retornados de uma função) deve ter no máximo 10 bytes, sem contar a nova linha à direita opcional.
Você pode criar vários trechos de código no mesmo idioma. A saída do seu envio é considerada a saída de cada parte do código concatenada em uma ordem fixa (para que você possa usar o Regex).
O menor código vence.
fonte
画
. Mas não é fácil argumentar se a coisa na aviação é a✈
. Então eu decidi seguir o caminho mais fácil.Respostas:
CJam,
504845 bytesExistem caracteres não imprimíveis nas sequências acima, que podem ser obtidos pelos trechos
Isso também mostra que os pontos de código estão todos abaixo de 256. A saída é
0
para 1 letra,1
2 letras,2
3 letras e3
não ASCII.O programa simplesmente converte a string de entrada em um número base 22, executa uma série de módulos para reduzir o número, antes de executar uma pesquisa a partir de uma tabela codificada na base 4.
Experimente online | Suíte de teste
fonte
0123
saídas não correspondem ao número de letras cada. Por "respectivamente" eu estava me referindo à ordem listada no OP, assim0
como 1 letra,1
2 letras,2
3 letras e3
não é ASCII. Confuso, sim, mas foi a melhor opção de saída.Retina,
146136134130124 124107102 bytesObrigado @ Sp3000 por jogar fora 4 bytes!
Obrigado @ Mwr247 por jogar 17 bytes, deixando-me usar expressões regulares de sua resposta !
Obrigado @ jimmy23013 por jogar fora 5 bytes lembrando-me que eu posso alterar os valores de saída!
A saída é 1, 3, 2 e 4 para 1 caractere, 2 caracteres, 3 caracteres e não ASCII, respectivamente.
A versão com todos os casos de teste tem edições em alguns locais para fazê-lo funcionar com várias linhas.
Experimente online!
Experimente online com todos os casos de teste!
fonte
i?(ni|vi) -> [nv]?i
agora.(?!D)
.Javscript ES6,
342339330327 bytesRetorna uma sequência longa iniciando com
9
um caractere, uma sequência longa diferente iniciando comb
dois, uma terceira sequência iniciando comi
para três e simplesmenteundefined
para não-ascii.fonte
PowerShell,
212181 bytesDescobri que, se você pegar o primeiro, o terceiro e o último caracteres de cada uma das entradas possíveis (
[0,2,-1]
quando indexadas a zero), obteremos uma sequência de três letras exclusiva para cada entrada. Em seguida, estamos simplesmente usando uma pesquisa baseada em string para determinar qual delas temos.Recebe entrada
$args[0]
e aplica a função de exclusividade acima, salva como$a
.Este é então enviado através da nossa lista de pesquisa via
.IndexOf($a)
e o resultado armazenado em$b
. Em seguida, passamos por um pseudo-ternário que indexa com base no valor de$b
para gerar o valor apropriado.Saídas
1
,2
,3
, e4
para um caráter, de dois caracteres, de três caracteres, não-ASCII, respectivamente.Edição - descoberta que
[0,2,-1]
cria uma sequência única de três caracteres para cada entrada, economizando 31 bytesfonte
JavaScript (ES6), 108 bytes
Cria uma matriz composta por correspondências regex exclusivas para cada um dos três grupos menores (1 caractere, 3 caracteres e não ascii) e, em seguida, mapeia um teste nos dados de cada matriz. Quando a saída é especificada, ela avalia como
1,0,0
não-ascii,0,1,0
3 caracteres,0,0,1
1 caractere e0,0,0
2 caracteres.fonte