Có bao nhiêu ký tự trên biểu tượng của trang web Stack Exchange?


19

Đặt tên cho trang web Stack Exchange chưa có thiết kế riêng, hãy quyết định có bao nhiêu ký tự ASCII (không phải ASCII được tính riêng) trên các biểu tượng của chúng. Mã của bạn nên phân biệt 4 trường hợp sau:

1 ký tự:

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

2 ký tự:

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 ký tự:

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

Không phải ASCII:

Anime & Manga
Arduino
Aviation
Chess
CiviCRM
Poker

Không bao gồm trong thử thách này vì có các ký tự không phải ASCII trong tên của họ:

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

Mã của bạn sẽ xuất ra một giá trị riêng biệt nhất quán cho mỗi trong số 4 bộ. Mỗi đầu ra (hoặc biểu diễn chuỗi của nó cho các giá trị không phải chuỗi được trả về từ một hàm) không được quá 10 byte, không tính dòng mới theo dõi tùy chọn.

Bạn có thể tạo nhiều đoạn mã trong cùng một ngôn ngữ. Đầu ra của bài nộp của bạn được coi là đầu ra của mỗi đoạn mã được nối theo thứ tự cố định (vì vậy bạn có thể sử dụng Regex).

Mã ngắn nhất sẽ thắng.


Đường nối này như sân golf regex
HEGX64

Hoặc có thể là phân tích hình ảnh bằng cách sử dụng favicon, cho rằng "Anime và Manga" có một ký tự tiếng Nhật trong logo đó - do đó nằm trong danh sách "Non-ASCII".
Chris J

@ChrisJ Bạn không được phép truy cập Internet cho mục đích của thử thách này. Đó có thể là một câu hỏi khác ...
jimmy23013

Nhân vật trên Anime & Manga rõ ràng là a . Nhưng không dễ để tranh luận liệu thứ trên Hàng không là một . Vì vậy, tôi quyết định làm theo cách dễ nhất.
jimmy23013 ngày

Vì vậy, chúng tôi nhập tên và xuất số lượng ký tự ascii?
GamrCorps

Câu trả lời:


6

CJam, 50 48 45 byte

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

Có các ký tự không thể in được trong các chuỗi ở trên, có thể lấy được bằng các đoạn mã

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

Điều này cũng cho thấy rằng các điểm mã đều dưới 256. Đầu ra là 01 chữ cái, 1cho 2 chữ cái, 2cho 3 chữ cái và 3không phải ASCII.

Chương trình chỉ cần chuyển đổi chuỗi đầu vào thành số 22 cơ sở, thực hiện một loạt các mô đun để giảm số lượng xuống, trước khi thực hiện tra cứu từ bảng được mã hóa cơ sở 4.

Dùng thử trực tuyến | Bộ kiểm tra


1
Bạn nói dối! Nguồn mở có 3 chữ cái! Làm thế nào bạn có thể làm điều này đến trang web của tôi! Tôi ... tôi ... tôi rất đau lòng!
Zizouz212

@ Zizouz212 Các 0123đầu ra không tương ứng với số lượng chữ cái mỗi. Bởi "tương ứng" tôi đã đề cập đến thứ tự được liệt kê trong OP, như vậy 0là 1 chữ cái, 1là 2 chữ cái, 2là 3 chữ cái và 3không phải là ASCII. Nhầm lẫn, có, nhưng đó là sự lựa chọn đầu ra golf nhất.
Sp3000

4

Võng mạc, 146 136 134 130 124 107 102 byte

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

Cảm ơn @ Sp3000 vì đã chơi golf 4 byte!
Cảm ơn @ Mwr247 vì đã chơi golf 17 byte bằng cách cho tôi sử dụng regexes từ câu trả lời của anh ấy !
Cảm ơn @ jimmy23013 vì đã chơi golf 5 byte bằng cách nhắc nhở tôi rằng tôi có thể thay đổi giá trị đầu ra!

Đầu ra lần lượt là 1, 3, 2 và 4 cho 1-char, 2-char, 3-char và không-ASCII.

Phiên bản với tất cả các bản thử nghiệm có các chỉnh sửa ở một vài nơi để làm cho nó hoạt động với nhiều dòng.

Hãy thử trực tuyến!
Hãy thử trực tuyến với tất cả các thử nghiệm!


@ Sp3000 Oh ... vâng, cảm ơn! Không nhận thấy điều đó. Đó là những gì xảy ra khi bạn gõ quá nhanh và không kiểm tra đúng cách sau đó, tôi đoán vậy. Tôi thậm chí có thể i?(ni|vi) -> [nv]?ibây giờ.
daavko

1
Tôi có một số biểu thức chính xác nhỏ gọn trong câu trả lời JS của tôi. Vui lòng sử dụng chúng nếu chúng sẽ giúp;)
Mwr247

1
@ Mwr247 Cảm ơn, tôi nghĩ tôi sẽ sử dụng chúng.
daavko ngày

1
Tôi nghĩ bạn có thể xuất 3 cho 2 char để thoát khỏi (?!D).
jimmy23013 ngày

@ jimmy23013 Điều đó có ý nghĩa ... bằng cách nào đó tôi đã quên tôi có thể di chuyển các giá trị đầu ra xung quanh.
daavko

2

Javscript ES6, 342 339 330 327 byte

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

Trả về một chuỗi dài bắt đầu bằng 9một ký tự, một chuỗi dài khác nhau bắt đầu bằng bhai, một chuỗi thứ ba bắt đầu bằng iba và đơn giản là undefinedkhông phải mã ascii.


Có nơi nào để kiểm tra nó không? Tôi đã phát hiện ra một loạt các hành vi phản quốc chống lại Nguồn mở ...
Zizouz212

@ Zizouz212 đây là một câu đố: jsfiddle.net/fpt60bpg
SuperJedi224

Chỉ có tôi, hoặc tôi không thể làm cho nó hoạt động?
Zizouz212

Nó dường như đang làm việc cho tôi.
SuperJedi224

1

PowerShell, 212 181 byte

$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]

Tôi thấy rằng nếu bạn lấy các ký tự đầu tiên, thứ ba và cuối cùng của mỗi mục nhập có thể ( [0,2,-1]khi được lập chỉ mục bằng 0), chúng tôi sẽ có được một chuỗi ba chữ cái duy nhất cho mỗi mục nhập. Chúng tôi sau đó chỉ đơn giản là sử dụng một tra cứu dựa trên chuỗi để xác định cái nào chúng tôi có.

Đưa đầu vào $args[0] và áp dụng chức năng duy nhất ở trên, lưu dưới dạng $a.

Điều này sau đó được gửi qua danh sách tra cứu của chúng tôi thông qua .IndexOf($a)và kết quả được lưu trữ trong$b . Sau đó, chúng ta đi qua một giả ba chỉ số dựa trên giá trị $bđể xuất giá trị phù hợp.

Kết quả đầu ra 1, 2, 3, và4 cho một nhân vật, hai nhân vật, ba nhân vật, phi ASCII tương ứng.

Chỉnh sửa - phát hiện ra rằng [0,2,-1]tạo một chuỗi ba ký tự duy nhất cho mỗi mục nhập, tiết kiệm 31 byte


2
Tôi thấy rằng bạn đã có "cà phê" được mã hóa cứng. Bộ não của tôi cũng vậy.
dotancohen

Có nơi nào tôi có thể kiểm tra nó không?
Zizouz212

@ Zizouz212 Bất kỳ máy tính Windows. Cũng có cái này , nhưng nó dường như không hoạt động và rõ ràng nó là PASH, không phải PowerShell thích hợp.
Bob

@ Zizouz212 PowerShell là độc quyền giả, trong đó chỉ có Windows. Có nhiều cách miễn phí để cài đặt Windows ảo hóa (phiên bản đánh giá, phiên bản dành cho nhà phát triển, v.v.) nếu bạn là người dùng FOSS. PASH là sự pha trộn mã nguồn mở của PowerShell và BASH, nhưng nó được thiết kế ngược chứ không phải trực tiếp và chỉ thực hiện khoảng 40% các tính năng của PowerShell v1, vì vậy nó khá hạn chế.
admBorkBork

1

JavaScript (ES6), 108 byte

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))

Tạo một mảng bao gồm regex khớp duy nhất với từng nhóm trong ba nhóm nhỏ nhất (1 ký tự, 3 ký tự và không ascii), sau đó ánh xạ một thử nghiệm trên dữ liệu cho từng mảng. Khi đầu ra được xâu chuỗi, nó ước tính 1,0,0cho không phải ascii, 0,1,0cho 3 ký tự, 0,0,1cho 1 ký tự và 0,0,0cho 2 ký tự.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.