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

または、「アニメとマンガ」のロゴに日本語の文字が含まれていることを考えると、ファビコンを使用した画像分析が可能です。したがって、「非ASCII」リストに含まれています。
クリスJ

@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文字、12文字、23文字、3非ASCIIの場合です。

プログラムは、入力文字列を基数22に変換し、基数4でエンコードされたテーブルからルックアップを実行する前に、一連のモジュロを実行して数を減らします。

オンラインで試す | テストスイート


1
嘘をつく!オープンソースには3文字あります!どうやってこれを私のサイトにできますか?私は...私は...私は悲痛だ!
-Zizouz212

@ Zizouz212 0123出力は、それぞれの文字数に対応していません。「それぞれ」ということで、私はOPにリストされている順序を参照していましたので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

4バイトのゴルフをしてくれてありがとう@ Sp3000!彼の答え
から正規表現を使用できるようにして 17バイトをゴルフしてくれてありがとう@ Mwr247 !
@ jimmy23013、出力値を変更できることを思い出させて、5バイトをゴルフしてくれてありがとう!

出力は、1文字、2文字、3文字、および非ASCIIの場合、それぞれ1、3、2、および4です。

すべてのテストケースを含むバージョンでは、複数の行で動作するようにいくつかの場所で編集が行われます。

オンラインでお試しください!
すべてのテストケースでオンラインでお試しください!


@ Sp3000ああ...そう、ありがとう!気づかなかった。それは、入力が速すぎて、後で適切にチェックしないときに起こることです。i?(ni|vi) -> [nv]?i今でもできます。
daavko

1
JSの回答にはかなりコンパクトな正規表現があります。彼らが助けてくれるなら、それらを自由に使用してください;)
Mwr247

1
@ Mwr247ありがとう、私はそれらを使うと思います。
daavko

1
を取り除くために、2文字に対して3を出力できると思います(?!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}

91文字で始まる長い文字列b、2 文字で始まる別の長い文字列、3文字で始まる3番目の文字列i、および単純undefinedに非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]

可能性のある各エントリの最初の文字、3番目の文字、および最後の文字([0,2,-1]ゼロインデックスの場合)を取得すると、エントリごとに一意の3文字の文字列が取得されることがわかりました。次に、単に文字列ベースのルックアップを使用して、どれを持っているかを判断しています。

入力を受け取り$args[0]、上記の一意性関数を適用し、として保存し$aます。

これはルックアップリストを介して送信.IndexOf($a)され、結果はに保存され$bます。次に、の値に基づいてインデックスを作成する疑似3項を通過して$b、適切な値を出力します。

出力123、および4それぞれ1文字、2文字、3文字、非ASCII、ため。

編集- [0,2,-1]エントリごとに一意の3文字の文字列を作成し、31バイトを節約することが発見されました


2
「コーヒー」がハードコードされていることがわかります。私の脳もそうです。
dotancohen

テストできる場所はありますか?
-Zizouz212

@ Zizouz212任意のWindowsコンピューター。そこもだ、この、それが動作していないようですし、明らかにそれのPASHはなく、適切なPowerShellの。
ボブ

@ Zizouz212 PowerShellは、Windows専用であるという点で、疑似所有権です。FOSSユーザーであれば、仮想化されたWindows(評価版、開発者版など)を無料でインストールできます。PASHはPowerShellとBASHのオープンソースブレンドですが、直接ではなくリバースエンジニアリングされており、PowerShell v1機能の約40%しか実装していないため、かなり制限されています。
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))

3つの最小グループ(1文字、3文字、非ASCII)のそれぞれに一意の正規表現一致で構成される配列を作成し、各配列のデータにテストをマッピングします。出力が文字列化されると1,0,0、非ASCII、0,1,03文字、0,0,11文字、および0,0,02文字で評価されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.