มีอักขระกี่ตัวบนไอคอนของไซต์ Stack Exchange


19

ระบุชื่อของไซต์สแต็ก 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)

รหัสที่สั้นที่สุดชนะ


ตะเข็บนี้เหมือนสนามกอล์ฟ regex
HEGX64

หรืออาจเป็นการวิเคราะห์รูปภาพโดยใช้ favicon เนื่องจาก "อะนิเมะและมังงะ" มีตัวอักษรญี่ปุ่นในโลโก้นั้นจึงอยู่ในรายการ "ไม่ใช่ ASCII"
Chris J

@ChrisJ คุณไม่ควรเข้าใช้อินเทอร์เน็ตเพื่อจุดประสงค์ในการท้าทายนี้ นั่นอาจเป็นคำถามอื่น ...
jimmy23013

ตัวละครในอะนิเมะและมังงะจะเห็นได้ชัด แต่มันไม่ง่ายเลยที่จะเถียงว่าเรื่องของ Aviation เป็นอย่างไร ดังนั้นฉันตัดสินใจที่จะทำตามวิธีที่ง่ายที่สุด
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 แล้วดำเนินการชุดโมดูโลสเพื่อลดจำนวนลงก่อนดำเนินการค้นหาจากตารางที่เข้ารหัสพื้นฐาน -4

ลองใช้ออนไลน์ | ชุดทดสอบ


1
คุณโกหก! โอเพ่นซอร์สมี 3 ตัวอักษร! คุณจะทำสิ่งนี้กับเว็บไซต์ของฉันได้อย่างไร! ฉัน ... ฉัน ... ฉันอกหัก!
Zizouz212

@ Zizouz212 0123ผลลัพธ์ไม่ตรงกับจำนวนตัวอักษรแต่ละตัว โดย "ตามลำดับ" ฉันอ้างถึงคำสั่งซื้อที่ระบุไว้ใน OP ดังนั้น0คือ 1 ตัวอักษร1คือ 2 ตัวอักษร2คือ 3 ตัวอักษรและ3ไม่ใช่ ASCII เกิดความสับสนใช่ แต่มันเป็นตัวเลือกที่ดีที่สุดสำหรับนักกอล์ฟ
Sp3000

4

Retina, 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 ไบต์โดยให้ฉันใช้ regexes จากคำตอบของเขา !
ขอบคุณ @ jimmy23013 สำหรับการเล่นกอล์ฟ 5 ไบต์โดยเตือนฉันว่าฉันสามารถเปลี่ยนค่าเอาต์พุต!

เอาต์พุตคือ 1, 3, 2 และ 4 สำหรับ 1-char, 2-char, 3-char และ non-ASCII ตามลำดับ

เวอร์ชันที่มีการทดสอบทั้งหมดมีการแก้ไขในไม่กี่แห่งเพื่อให้สามารถทำงานได้กับหลายบรรทัด

ลองออนไลน์!
ลองใช้งานออนไลน์กับ testcase ทั้งหมด!


@ Sp3000 โอ้ ... ใช่ขอบคุณ! ไม่ได้สังเกตว่า นั่นคือสิ่งที่เกิดขึ้นเมื่อคุณพิมพ์เร็วเกินไปและไม่ตรวจสอบอย่างถูกต้องหลังจากนั้นฉันเดา ฉันทำได้แม้i?(ni|vi) -> [nv]?iตอนนี้
daavko

1
ฉันมี regexes กะทัดรัดสวยในคำตอบ 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]และนำไปใช้ข้างต้นฟังก์ชั่นที่ไม่ซ้ำกัน-Ness $aบันทึกเป็น

นี้จะถูกส่งผ่านรายการการค้นหาของเราผ่านทางและผลที่ได้เก็บไว้ใน.IndexOf($a) $bจากนั้นเราจะทำการตรวจสอบข้อมูลปลอมโดยใช้ดัชนีที่อ้างอิงค่าของ$bผลลัพธ์ที่เหมาะสม

เอาท์พุท1, 2, 3และ4เป็นหนึ่งในตัวละครสองตัวสามตัวละครที่ไม่ใช่ ASCII ตามลำดับ

แก้ไข - ค้นพบที่[0,2,-1]สร้างสตริงอักขระสามตัวที่ไม่ซ้ำกันสำหรับแต่ละรายการบันทึก 31 ไบต์


2
ฉันเห็นว่าคุณมี "กาแฟ" ฮาร์ดโค้ดแล้ว สมองของฉันก็เช่นกัน
dotancohen

มีสถานที่ที่ฉันสามารถทดสอบได้หรือไม่?
Zizouz212

@ Zizouz212 คอมพิวเตอร์ Windows ทุกเครื่อง นอกจากนี้ยังมีสิ่งนี้แต่ดูเหมือนจะไม่ทำงานและเห็นได้ชัดว่ามันเป็น PASH ไม่ใช่ PowerShell ที่เหมาะสม
Bob

@ Zizouz212 PowerShell เป็นของปลอมโดยเฉพาะ Windows เท่านั้น มีวิธีฟรีในการติดตั้งWindows เสมือนจริง (รุ่นทดลองใช้, รุ่นผู้พัฒนา ฯลฯ ) หากคุณเป็นผู้ใช้ FOSS 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))

สร้างอาร์เรย์ที่ประกอบด้วย regex จับคู่กับแต่ละกลุ่มที่เล็กที่สุดในสามกลุ่ม (1 ตัวอักษร, 3 ตัวอักษร, และไม่ใช่แบบ ascii) จากนั้นแมปการทดสอบข้อมูลสำหรับแต่ละอาร์เรย์ เมื่อเอาต์พุตถูกทำให้เป็นสตริงจะหาค่าเป็น1,0,0non-ascii 0,1,0สำหรับ 3 ตัวอักษร0,0,1สำหรับ 1 ตัวอักษรและ0,0,02 ตัวอักษร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.