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

非ASCII:

Anime & Manga
Arduino
Aviation
Chess
CiviCRM
Poker

由于名称中包含非ASCII字符而被排除在此挑战之外:

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

您的代码应为4组中的每组输出一致的不同值。每个输出(或其从函数返回的非字符串值的字符串表示形式)不应超过10个字节,这不包括可选的尾随换行符。

您可以使用相同的语言创建多段代码。您提交的输出被视为以固定顺序连接的每段代码的输出(因此您可以使用Regex)。

最短的代码胜出。


这接缝像正则表达式高尔夫球
HEGX64

或者可以使用favicon进行图像分析,因为“ Anime and Manga”的徽标中带有日语字符-因此位于“非ASCII”列表中。
克里斯J

@ChrisJ您不应出于此挑战而访问Internet。那可能是另一个问题……
jimmy23013 '16

Anime&Manga上的角色显然是一个角色。但是,要争辩航空业是否是一件难事并不容易。因此,我决定遵循最简单的方法。
jimmy23013 '16

那么我们输入名称并输出ascii字符的数量吗?
GamrCorps'3

Answers:


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个字母,12个字母,23个字母和3非ASCII。

该程序仅将输入字符串转换为以22为基数的数字,执行一系列取模以减少数字,然后再从以4为基数的编码表中进行查找。

在线试用 | 测试套件


1
你撒谎!开源有3个字母!您怎么能在我的网站上这样做!我...我...我伤心了!
Zizouz212 '16

@ Zizouz212 0123输出与每个字母的数量不对应。通过“分别”,我指的是OP中列出的顺序,所以01个字母,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字符,2字符,3字符和非ASCII的输出分别为1、3、2和4。

带有所有测试用例的版本在少数地方进行了编辑,以使其可以使用多行。

在线尝试!
在线使用所有测试用例!


@ Sp3000哦...是的,谢谢!没注意到。我猜这就是当您键入得太快而之后没有正确检查时会发生的情况。我什至i?(ni|vi) -> [nv]?i现在可以。
daavko '16

1
我的JS回答中有一些非常紧凑的正则表达式。如果他们有帮助,请随时使用它们;)
Mwr247 '16

1
@ Mwr247谢谢,我想我会用它们的。
daavko

1
我认为您可以输出2个字符的3以摆脱(?!D)
jimmy23013 '16

@ 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以2 开头的另一个长字符串,以3开头的第三个字符串i,以及undefined非ASCII 字符串。


有什么地方可以测试吗?我发现了一系列针对开放源代码的叛国行为...
Zizouz212,2016年

@ Zizouz212这是一个小提琴:jsfiddle.net/fpt60bpg
SuperJedi224 '16

只是我,还是我不能使其工作?
Zizouz212 '16

它似乎为我工作。
SuperJedi224 '16

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以输出适当的值。

输出123,和4一个字符,两个字符,三个字符,非ASCII,分别。

编辑-发现[0,2,-1]为每个条目创建一个唯一的三字符字符串,节省31个字节


2
我发现您已经对“咖啡”进行了硬编码。我的大脑也一样。
dotancohen

有没有可以测试的地方?
Zizouz212 '16

@ Zizouz212任何Windows计算机。也有这个,但是它似乎没有用,显然是PASH,不适合PowerShell。
鲍勃

@ Zizouz212 PowerShell是伪专有的,因为它仅适用于Windows。如果您是FOSS用户,则可以使用免费的方法来安装虚拟化Windows(评估版,开发人员版等)。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个字符和非ASCII)中的每一个唯一的正则表达式匹配组成,然后将测试映射到每个数组的数据上。将输出字符串化后,其结果1,0,0为非ASCII,0,1,03个字符,0,0,11个字符和0,0,02个字符。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.