คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

23
มีวงกลมเรียงกัน, n จุด
ลากเส้นระหว่างจุดที่แตกต่างกันทุกคู่สำหรับnจุดที่จัดเรียงเป็นวงกลมทำให้เกิดผลลัพธ์ดังนี้ รหัสที่สั้นที่สุด (เป็นไบต์) ชนะ! เส้นของคุณไม่จำเป็นต้องโปร่งใส แต่มันดูดีกว่านี้ ผลลัพธ์จะต้องเป็นกราฟิกแบบเวกเตอร์หรือเป็นภาพอย่างน้อย 600 พิกเซลคูณ 600 พิกเซล (บันทึกเป็นไฟล์หรือแสดงบนหน้าจอ) เพื่อให้การท้าทายคุณจะต้องวาดอย่างน้อย 20

30
มุมมองการระเบิดของสตริง
คุณไม่ชอบไดอะแกรมมุมมองที่ระเบิดซึ่งเครื่องจักรหรือวัตถุถูกแยกออกเป็นชิ้นเล็ก ๆ หรือไม่? ลองทำกับสตริง! ความท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่ ปัจจัยการผลิตสตริงที่มีเพียงตัวอักขระ ASCII ; แยกสตริงออกเป็นกลุ่มของอักขระที่ไม่เท่ากับช่องว่าง ("ส่วน" ของสตริง) ผลกลุ่มผู้ที่อยู่ในรูปแบบที่สะดวกใด ๆ กับบางคั่นระหว่างกลุ่ม ตัวอย่างเช่นกำหนดสตริง Ah, abracadabra! ผลลัพธ์จะเป็นกลุ่มต่อไปนี้: ! , aaaaa BB ค d ชั่วโมง RR แต่ละกลุ่มในเอาต์พุตมีอักขระที่เท่ากันโดยลบช่องว่างออก มีการใช้การขึ้นบรรทัดใหม่เป็นตัวคั่นระหว่างกลุ่ม เพิ่มเติมเกี่ยวกับรูปแบบที่อนุญาตด้านล่าง กฎระเบียบ การป้อนข้อมูลที่ควรจะเป็นสตริงหรืออาร์เรย์ของตัวอักษร มันจะมีเฉพาะตัวอักษร ASCII ที่พิมพ์ได้ (ช่วงรวมจากพื้นที่ถึงตัวหนอน) หากภาษาของคุณไม่รองรับคุณสามารถป้อนข้อมูลในรูปแบบของตัวเลขที่แสดงถึงรหัส ASCII คุณสามารถสรุปได้ว่าการป้อนข้อมูลที่มีอย่างน้อยหนึ่งตัวละครที่ไม่ใช่พื้นที่ ส่งออกควรประกอบด้วยตัวอักษร (แม้ว่าใส่เป็นโดยความหมายของรหัส ASCII) จะต้องมีตัวคั่นที่ชัดเจนระหว่างกลุ่มซึ่งแตกต่างจากอักขระที่ไม่ใช่ช่องว่างที่อาจปรากฏในอินพุต ถ้าเอาต์พุตส่งคืนโดยฟังก์ชันส่งคืนอาจเป็นอาร์เรย์หรือสตริงหรืออาร์เรย์ของ chars หรือโครงสร้างที่คล้ายกัน ในกรณีนั้นโครงสร้างให้แยกที่จำเป็น ตัวคั่นระหว่างตัวละครของแต่ละกลุ่มเป็นตัวเลือก หากมีข้อใดข้อหนึ่งกฎเดียวกันจะมีผลบังคับใช้: จะต้องไม่ใช่อักขระที่ไม่ใช่ช่องว่างที่อาจปรากฏในอินพุต …
39 code-golf  string 

30
ตรวจสอบสตริง
หลายภาษามีวิธีการในการกำจัดรายการที่ซ้ำกันหรือ "deduplicate" หรือ "uniquify" รายการหรือสตริง งานทั่วไปที่น้อยกว่าคือ "detriplicate" สตริง นั่นคือสำหรับตัวละครทุกตัวที่ปรากฏขึ้นสองเหตุการณ์แรกจะถูกเก็บไว้ นี่คือตัวอย่างที่ตัวละครที่ควรลบจะมีป้ายกำกับด้วย^: aaabcbccdbabdcd ^ ^ ^^^ ^^ aabcbcdd งานของคุณคือการใช้การดำเนินการนี้อย่างแน่นอน กฎระเบียบ อินพุตเป็นสตริงเดี่ยวอาจว่างเปล่า คุณอาจคิดว่ามันมีตัวอักษรตัวพิมพ์เล็กในช่วง ASCII เท่านั้น เอาต์พุตควรเป็นสตริงเดี่ยวที่ลบอักขระทั้งหมดซึ่งปรากฏอยู่แล้วอย่างน้อยสองครั้งในสตริง (เพื่อให้เกิดเหตุการณ์สองครั้งที่เหลือมากที่สุด) แทนที่จะใช้สตริงคุณสามารถทำงานกับรายการอักขระ (หรือสตริงเดี่ยว) แต่รูปแบบจะต้องสอดคล้องกันระหว่างอินพุตและเอาต์พุต คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและใช้วิธีการมาตรฐานของเราในการรับอินพุตและให้เอาต์พุต คุณอาจใช้ภาษาการเขียนโปรแกรมใด ๆแต่โปรดทราบว่าช่องโหว่เหล่านี้เป็นสิ่งต้องห้ามตามค่าเริ่มต้น นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง - วัดเป็นไบต์ - ชนะ กรณีทดสอบ คู่ของเส้นทุกคู่เป็นหนึ่งกรณีทดสอบ, อินพุตตามด้วยเอาต์พุต xxxxx xx abcabc abcabc abcdabcaba abcdabc abacbadcba abacbdc aaabcbccdbabdcd aabcbcdd ลีดเดอร์บอร์ด สแต็คส่วนย่อยที่ด้านล่างของโพสต์นี้สร้างกระดานแต้มนำจากคำตอบ …

29
Pseudofactorial
มีจำนวนที่ค่อนข้างอยากรู้อยากเห็นซึ่งบางครั้งก็ปรากฏขึ้นในปัญหาทางคณิตศาสตร์หรือปริศนา pseudofactorial (N) เป็นพหุคูณสามัญน้อยที่สุด (เช่นต่ำสุด) ของตัวเลข 1 ถึง N; มันคือจำนวนต่ำสุดซึ่งมีตัวเลขทั้งหมดตั้งแต่ 1 ถึง N เป็นปัจจัย เช่น pseudofactorial (7) = 3 * 4 * 5 * 7 ซึ่งเหมือนกับ 7! ยกเว้นว่ามีการลบ 2 และ 6 ออกเนื่องจากมีอยู่ในข้อกำหนดอื่น เขียนโปรแกรมเพื่อคำนวณ pseudofactorial (N) และเช่นเคยรหัสสั้นที่สุดชนะ นี่คือรายการสั้น ๆ สำหรับการใช้งานของคุณ เพิ่มเติมกรณีทดสอบที่สามารถพบได้ใน OEIS ภายใต้A003418 factorial: 1 2 6 24 120 720 5040 …

15
มองขึ้นไปบนฟ้า! มันเป็นอาร์เรย์ที่ยอดเยี่ยมมาก!
ได้รับแรงบันดาลใจจากคำถามนี้จากเพื่อน ๆคู่แข่งของเราในการตรวจสอบรหัส คำนิยาม อาร์เรย์ซุปเปอร์เป็นอาร์เรย์ที่แต่ละองค์ประกอบใหม่ในอาร์เรย์มีขนาดใหญ่กว่าผลรวมขององค์ประกอบทั้งหมดก่อนหน้านี้ด้วย {2, 3, 6, 13}เป็นอาเรย์ super เพราะ 3 > 2 6 > 3 + 2 (5) 13 > 6 + 3 + 2 (11) {2, 3, 5, 11}คือไม่อาร์เรย์สุดเพราะ 3 > 2 5 == 3 + 2 11 > 5 + 3 + 2 อาร์เรย์ duperเป็นอาร์เรย์ที่แต่ละองค์ประกอบใหม่ในอาร์เรย์มีขนาดใหญ่กว่าสินค้าทุกองค์ประกอบก่อนหน้านี้ด้วย {2, 3, …

30
การทดสอบการแบ่งแยก
งาน ได้รับสองจำนวนเต็มบวกอย่างเคร่งครัดnและdเป็น input ตรวจสอบว่าnคือเท่ากันหารโดยdคือถ้ามีจำนวนเต็มคิวn = qdดังกล่าวว่า คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและใช้วิธีการมาตรฐานของเราในการรับอินพุตและให้เอาต์พุต เอาท์พุทควรจะเป็นtruthy หรือค่า falsy ; ความจริงถ้าnหารด้วยdและเป็นเท็จอย่างอื่น รหัสของคุณต้องจัดการกับจำนวนเต็มเท่านั้นซึ่งสามารถเป็นตัวแทนได้จริงตราบใดที่มันใช้ได้กับเลขจำนวนเต็ม 8 บิตที่ลงชื่อทั้งหมด อย่างไรก็ตามอัลกอริทึมของคุณต้องใช้งานสำหรับจำนวนเต็มขนาดใหญ่โดยพลการ คุณอาจใช้ภาษาการเขียนโปรแกรมใด ๆแต่โปรดทราบว่าช่องโหว่เหล่านี้เป็นสิ่งต้องห้ามตามค่าเริ่มต้น นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง - วัดเป็นไบต์ - ชนะ กรณีทดสอบ n, d output 1, 1 truthy 2, 1 truthy 6, 3 truthy 17, 17 truthy 22, 2 truthy 1, 2 falsy 2, 3 falsy 2, 4 …

21
คีย์แถวใดอยู่
รับอักขระใด ๆ ต่อไปนี้ (หรือขึ้นบรรทัดใหม่): `1234567890-=~!@#$%^&*()_+qwertyuiop[]\QWERTYUIOP{}|asdfghjkl;'ASDFGHJKL:"zxcvbnm,./ZXCVBNM<>? โปรแกรมของคุณต้องแสดงผลแถวที่อยู่บนแป้นพิมพ์ เนื่องจากแป้นพิมพ์ของฉันเกือบหมดแบตเตอรี่รหัสของคุณต้องสั้นที่สุด แป้นพิมพ์ที่โปรแกรมของคุณควรใช้ (สำหรับการค้นหาแถว) ควรมีลักษณะดังนี้: Row 1:~` !1@2 #3$4 %5^6 &7*8 (9)0 _-+= Row 2: Q W E R T Y U I O P {[ }] |\ Row 3: A S D F G H J K L :; "' ↵ return Row 4: …

24
นาฬิกา ASCII พร้อมเครื่องหมายเวลาและเครื่องหมายจุลภาค
บทนำ ลองนึกภาพว่าเส้นของตัวอักษรเป็นสองแถว แถวบน - จุด - หมายถึงชั่วโมง (ระบบตลอด 24 ชั่วโมง) ในขณะที่ลดลง - เครื่องหมายจุลภาค - หมายถึงนาที ตัวละครตัวหนึ่งสามารถแสดงชั่วโมงนาทีหรือทั้งสองอย่าง - เมื่อเป็นไปได้ ตอนแรกอาจจะมีการแปลงนาทีนับตั้งแต่เที่ยงคืนถึงชั่วโมงและนาที ผลลัพธ์ที่ได้คือสตริงที่แสดงเวลาปัจจุบันใน "รูปแบบจุด" จุดนับ ( เครื่องหมายอัญประกาศเดี่ยวนับที่นี่เป็นจุดและจะถูกเรียกอย่างนั้น! ) คือการนับชั่วโมงตั้งแต่เที่ยงคืนและการนับจุลภาคคือการนับนาที ฉันจะแสดงตัวอย่างบางอย่างเพื่อให้ชัดเจน (หมายเหตุ) hh: mm - result (เฉพาะชั่วโมง) 05:00 - ''''' (เพียงไม่กี่นาที) 00:08 - ,,,,,,,, (ชั่วโมง <นาที) 03:07 - ;;;,,,, (ชั่วโมง> นาที) 08:02 - ;;'''''' …
39 code-golf  string  clock  time 

14
สร้างลำดับของ Temple Skyline
พิจารณากระบวนการต่อไปนี้: รับจำนวนเต็ม N ที่ไม่เป็นลบ เช่น N = 571 แสดงเป็นเลขฐานสองโดยไม่มีเลขศูนย์นำหน้า (ศูนย์ตัวเองเป็นข้อยกเว้นเพียงอย่างเดียวเท่านั้น0) เช่น571= 1000111011ในไบนารี แยกการทำงานของเลขศูนย์และศูนย์ในการแทนเลขฐานสองนี้ เช่น1000111011→ 1, 000, 111, 0,11 เรียงลำดับการวิ่งจากที่ยาวที่สุดไปที่สั้นที่สุด เช่น1, 000, 111, 0, 11→ 000, 111, 11, 1,0 เขียนทับตัวเลขทั้งหมดในการวิ่งแต่ละครั้งด้วยการสลับ1และ0เริ่มต้นด้วย1เสมอ เช่น000, 111, 11, 1, 0→ 111, 000, 11, 0,1 ต่อผลลัพธ์เพื่อรับเลขฐานสองใหม่ เช่น111, 000, 11, 0, 1→ 1110001101= 909ในทศนิยม เมื่อคุณพล็อตค่าที่สร้างโดยกระบวนการนี้คุณจะได้กราฟที่สวยงาม: และหวังเป็นอย่างชัดเจนว่าเหตุใดฉันจึงเรียกลำดับผลลัพธ์ตามลำดับTemple Skyline : …

22
การวิเคราะห์ข้อความ
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในสายอักขระที่รับประกันว่าจะมีอักขระ ASCII ที่พิมพ์ได้ยกเว้นพื้นที่และเป็นความยาวรูปสามเหลี่ยม (1, 3, 6, 10, 15, 15, ... ) พิมพ์หรือส่งคืนสายเดียวกัน แต่รูปร่างเป็นรูปสามเหลี่ยมโดยใช้ช่องว่าง ตัวอย่างบางส่วนจะแสดงสิ่งที่ฉันหมายถึง: ถ้าอินพุตเป็นRเอาต์พุตจะเป็น R ถ้าอินพุตเป็นcatเอาต์พุตจะเป็น c a t ถ้าอินพุตเป็นmonk3yเอาต์พุตจะเป็น m o n k 3 y ถ้าอินพุตเป็นmeanIngfu1เอาต์พุตจะเป็น m e a n I n g f u 1 ถ้าอินพุตเป็น^/\/|\/[]\เอาต์พุตจะเป็น ^ / \ / | \ / [ ] \ หากอินพุตเป็น …

13
ฉันต้องการรังผึ้ง
เขียนโปรแกรมที่สั้นที่สุดที่พิมพ์ส่วนศิลปะ ASCII ของการเรียงต่อหกเหลี่ยมหรือรวงผึ้ง : __ __/ \__ __/ \__/ \__ / \__/ \__/ \ \__/ \__/ \__/ / \__/ \__/ \ \__/ \__/ \__/ / \__/ \__/ \ \__/ \__/ \__/ \__/ \__/ \__/ ไม่ควรป้อนข้อมูลใด ๆ ส่งออกไปยัง stdout หรือทางเลือกที่ใกล้เคียงที่สุดในภาษาของคุณ แทนที่จะเป็นโปรแกรมคุณสามารถเขียนฟังก์ชั่นที่มีชื่อซึ่งไม่มีพารามิเตอร์และพิมพ์ผลลัพธ์ได้ตามปกติหรือส่งกลับเป็นสตริง เอาต์พุตอาจมีจำนวนบรรทัดใหม่นำหน้าและ / หรือลากขึ้นบรรทัดใหม่และแต่ละบรรทัดในเอาต์พุตอาจมีช่องว่างนำหน้าและ / หรือช่องว่างจำนวนเท่าใดก็ได้ (ตราบใดที่ลวดลายขึ้นอย่างถูกต้อง) รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ

24
คำนวณผลรวมความแตกต่างของตัวเลข
ลองพิจารณาจำนวนเต็มที่ไม่เป็นลบเช่น 8675309 และคำนวณค่าสัมบูรณ์ของความแตกต่างระหว่างคู่หลักทั้งหมดที่อยู่ใกล้เคียง สำหรับการ8675309ที่เราได้รับ|8-6| = 2, |6-7| = 1, |7-5| = 2, |5-3| = 2, ,|3-0| = 3 คบผลลัพธ์เหล่านี้เข้าด้วยกันอัตราผลตอบแทนอื่นจำนวนเต็มไม่ใช่เชิงลบที่มีขนาดเล็ก:|0-9| = 9 212239ทำซ้ำกระบวนการให้11016แล้ว0115ซึ่งโดยการประชุมที่ศูนย์นำไม่เขียนลดความซับซ้อนเป็น115ซึ่งจะกลายเป็น04หรือ4ซึ่งไม่สามารถลดได้อีกต่อไป 8675309 + 212239 + 11016 + 115 + 4 = 8898683ข้อสรุปค่าทั้งหมดเหล่านี้ที่เราได้รับ ลองกำหนด Digit Difference Sum (หรือ DDS) เป็นการดำเนินการของการรับความแตกต่างของตัวเลขเพื่อสร้างตัวเลขใหม่จากนั้นเพิ่มตัวเลขผลลัพธ์ทั้งหมดลงในต้นฉบับ นี่คือ 20 ค่าแรกในลำดับ DDS ที่เกี่ยวข้อง: N DDS(N) 0 0 1 …

8
สร้างกำแพงอิฐที่มั่นคง
กำแพงอิฐเป็นรูปสี่เหลี่ยมผืนผ้าที่ทำจากอิฐเรียงต่อกันในแนวตั้ง นี่คือกำแพงที่มีความสูง 4 และความกว้าง 8 โดยมีขนาดอิฐที่แสดงทางด้านขวา [______][______] 4 4 [__][____][__][] 2 3 2 1 [][______][____] 1 4 3 [____][______][] 3 4 1 กำแพงนี้ไม่มั่นคงเนื่องจากมีข้อผิดพลาดสถานที่ที่รอยร้าวแนวตั้งสองแนวระหว่างอิฐเรียงกันดังที่แสดงด้านล่างด้วย parens ในอิฐล้อมรอบ [______][______] [__][____)(__][] [][______)(____] [____][______][] แต่รอยแตกที่ล้อมรอบด้วยก้อนอิฐขนาด 1 ด้านขวาไม่ก่อให้เกิดความผิดพลาดเพราะมันถูกคั่นด้วยแถว เขียนโค้ดที่ค้นหาและแสดงกำแพงที่สร้างขึ้นจากอิฐในขนาดที่กำหนด ไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ อินพุต รายการขนาดอิฐที่ไม่ว่างเปล่า (ตัวเลขบวก) และความสูงอย่างน้อย 2 รายการนี้อาจเรียงลำดับได้หากคุณต้องการ คุณอาจเลือกที่จะนับอิฐแต่ละขนาด เอาท์พุต รูปภาพของกำแพงสี่เหลี่ยมที่มีความสูงที่ต้องการซึ่งใช้อิฐทั้งหมดที่ระบุ พิมพ์หรือส่งคืนเป็นสตริงที่มีบรรทัดใหม่ วาดก้อนอิฐขนาด n เป็นอักขระ 2n ขีดล่างล้อมรอบด้วยวงเล็บ 1: …

1
สร้าง chatbot สำหรับห้องสนทนา Stack Exchange
ความท้าทาย เป้าหมายของความท้าทายนี้คือการสร้าง chatbot ที่สามารถทำงานได้ใน chatrooms ของ Stack Exchange บอตของคุณต้องสามารถตรวจจับได้เมื่อผู้ใช้โพสต์คำสั่งเฉพาะและตอบกลับ นี่คือรายการคำสั่งและสิ่งที่บอทของคุณควรทำ: !!newest: แสดงชื่อ (ไม่มีลิงก์ แต่เป็นชื่อ) ของคำถามล่าสุดที่โพสต์บนเว็บไซต์นี้ (codegolf.SE) !!metanewest: แสดงชื่อคำถามล่าสุดที่โพสต์บนเว็บไซต์ meta (meta.codegolf.SE) !!questioncount: เอาท์พุทนับคำถามปัจจุบัน !!metaquestioncount: แสดงผลจำนวนคำถามปัจจุบันบนไซต์เมตา !!tag tagname: เอาท์แท็กข้อความที่ตัดตอนมา (คำอธิบายสั้น ๆ ) ของแท็กที่ได้รับเป็นพารามิเตอร์แรก !!metatag tagname: เหมือนด้านบน แต่สำหรับไซต์เมตา !!featured: เอาท์พุทนับคำถามที่ปัจจุบันมีความโปรดปราน !!metafeatured: แสดงจำนวนคำถามที่มีแท็ก[เด่น]บน Meta กฎระเบียบ คุณควรเขียนโปรแกรมที่สมบูรณ์ไม่ใช่ตัวอย่างหรือฟังก์ชั่น ในกรณีที่จำเป็นคุณสามารถขอชื่อผู้ใช้และรหัสผ่านเป็นอินพุต (พร้อมท์ใส่, STDIN, อาร์กิวเมนต์บรรทัดคำสั่ง) สิ่งนี้จะจำเป็นถ้าคุณใช้เช่น Python หรือ Ruby …
39 code-golf 

9
ตัวตรวจสอบ“ สะดวก palindrome”
หากคุณเคยพยายามที่จะเขียนรหัส palindromic มาก่อนคุณจะรู้ว่ามีแนวโน้มที่จะได้รับในวงเล็บของคุณ ()()ไม่ใช่ palindrome แม้ว่ามันดูเหมือนว่ามันควรจะเป็นในขณะที่())(และ()(มีทั้ง palindromic และทั้งสองมองเป็นใบ้ มันจะไม่สะดวกถ้ามันเป็นอย่างอื่น? สตริงเป็นpalindromic สะดวกถ้ามันเท่ากับสตริงที่ได้รับเมื่อ reverse มีวงเล็บ ( ()), วงเล็บ ( []) และวงเล็บปีกกา ( {}) ทั้งหมด ไม่มีตัวละครอื่นที่พิเศษและต้องการการพลิก ( <>บางครั้งมีการจับคู่ แต่มักจะไม่ถูกปล่อยออกไป) งานของคุณคือการเขียนในภาษาของคุณโปรแกรม (รับอินพุตบน STDIN) หรือฟังก์ชั่น (รับอาร์กิวเมนต์สตริงเดี่ยว) ซึ่ง (a) ให้ค่าจริงที่สอดคล้องกัน * เมื่ออาร์กิวเมนต์มีความสะดวก Palindromic และเท็จที่สอดคล้องกัน ค่าเป็นอย่างอื่นและ (b) เป็นตัวเองอย่างสะดวก palindromic ตัวอย่างเช่นอินพุตต่อไปนี้เป็นแบบ palindromic: racecar (a)(bb)(a) void main(int argc, *char[] …

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