การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

7
เปลี่ยนสตริงเป็นกังหันลม
รหัสในเว็บไซต์นี้กำลังจะหมดลงอย่างรวดเร็ว เราจำเป็นต้องลงทุนในสายการผลิตทดแทน ดังนั้นคุณต้องเขียนโปรแกรมที่ใช้สตริงและแปลงเป็นกังหันลม ความท้าทาย ลองมาดูตัวอย่างของกังหันลมแบบง่าย abcใช้สตริง เดือยbเป็นตัวละครที่ศูนย์ในกรณีนี้ เนื่องจากสตริงมีความยาว 3 ตัวอักษรเอาต์พุตทุกตัวจะถูกต้องสามบรรทัดสูงและสามตัวอักษรกว้าง นี่คือผลลัพธ์ของคุณในขั้นตอนที่ 1 (หมายเหตุช่องว่าง) abc ในการรับขั้นตอนต่อไปให้หมุนตัวละครแต่ละตัวรอบเดือยตามเข็มนาฬิกา นี่คือขั้นตอนที่ 2: a ข ค นี่คือขั้นตอนที่ 3-8: ข ค ข ค CBA ค ข ค ข ค ข และในขั้นตอนที่เก้ามันจะวนเต็มวงกลมไปยังสตริงเดิม: abc โปรดทราบว่าbอยู่ในจุดเดียวกันตลอดเวลา นี่เป็นเพราะbเป็นตัวละครสาระสำคัญ คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่รับสตริงเป็นอินพุตและพิมพ์ลำดับนี้ซ้ำ ๆ จนกว่าโปรแกรมจะปิด ชี้แจง สตริงอินพุตทั้งหมดจะมีอักขระจำนวนคี่ (เพื่อให้กังหันลมทุกอันมีเดือย) เพื่อให้การท้าทายง่ายขึ้นสตริงทั้งหมดจะมีเฉพาะตัวอักษรตัวพิมพ์ใหญ่และตัวเล็ก ผลลัพธ์จะต้องเป็นlen(input_string)อักขระที่กว้างและสูง ไม่สำคัญว่าขั้นตอนใดของลำดับที่คุณเริ่มต้นตราบใดที่คุณหมุนวนซ้ำไปเรื่อย ๆ ทดสอบเพิ่มเติม IO: เนื่องจากโพสต์ค่อนข้างยาวอยู่แล้วนี่คือลิงก์ไปยังเอาต์พุตสำหรับ …

8
แสดงตัวเลขที่มีเพียง 0-9 และสี่การดำเนินการ
คำอธิบาย Befungeเป็นโปรแกรมที่สองมิติที่ใช้สแต็ค นั่นหมายความว่าในการทำ 5 + 6 คุณเขียน56+ความหมาย: 56+ 5 push 5 into stack 6 push 6 into stack + pop the first two items in the stack and add them up, and push the result into stack (to those of you who do not know stacks, "push" just means add …

1
สร้าง ASCII Art
ให้ภาพขาวดำในรูปแบบ lossless ที่เหมาะสมในรูปแบบอินพุตเอาต์พุต ASCII art ที่ใกล้เคียงกับภาพอินพุตมากที่สุด กฎระเบียบ สามารถใช้ได้เฉพาะไลน์ฟีดและ ASCII ไบต์ 32-127 ภาพอินพุตจะถูกครอบตัดเพื่อไม่ให้มีพื้นที่ว่างภายนอกล้อมรอบภาพ การส่งจะต้องสามารถทำให้คลังข้อมูลคะแนนทั้งหมดสำเร็จภายในเวลาไม่ถึง 5 นาที ข้อความดิบเท่านั้นที่ยอมรับได้; ไม่มีรูปแบบ Rich Text ตัวอักษรที่ใช้ในการให้คะแนนคือ 20-PT ลินุกซ์ศีลธรรม ไฟล์ข้อความออกเมื่อแปลงเป็นภาพตามที่อธิบายไว้ด้านล่างจะต้องมีขนาดเท่ากับภาพที่ป้อนภายใน 30 พิกเซลในมิติใดมิติหนึ่ง เกณฑ์การให้คะแนน ภาพเหล่านี้จะถูกใช้เพื่อให้คะแนน: คุณสามารถดาวน์โหลด zipfile ของภาพได้ที่นี่ ไม่ควรส่งข้อมูลที่เหมาะสมสำหรับคลังข้อมูลนี้ แต่ควรใช้กับภาพดำและขาว 8 ภาพที่มีขนาดใกล้เคียงกัน ฉันขอสงวนสิทธิ์ในการเปลี่ยนภาพในคลังข้อมูลหากฉันสงสัยว่ามีการเพิ่มประสิทธิภาพการส่งสำหรับภาพเหล่านี้ การให้คะแนนจะดำเนินการผ่านสคริปต์นี้: #!/usr/bin/env python from __future__ import print_function from __future__ import division # modified from http://stackoverflow.com/a/29775654/2508324 …

10
ฉันเดินได้กี่ก้าว
pedometer ง่ายสามารถสร้างแบบจำลองโดยลูกตุ้มที่มีสองสวิทช์ตรงข้ามด้านหนึ่งที่ x = 0 และเป็นหนึ่งในที่ x = ลิตร เมื่อลูกตุ้มสัมผัสกับสวิตช์ไกลสามารถคาดเดาความทะเยอทะยานได้ครึ่งก้าว เมื่อติดต่อสวิตช์ใกล้ขั้นตอนจะเสร็จสมบูรณ์ รับรายการเลขจำนวนเต็มแทนตำแหน่งของลูกตุ้มกำหนดจำนวนขั้นตอนเต็มที่บันทึกไว้ในเครื่องนับก้าว อินพุต จำนวนเต็มl > 0 ความยาวของแทร็ก รายการจำนวนเต็มแทนตำแหน่งลูกตุ้มของเครื่องนับก้าวในแต่ละครั้ง เอาท์พุต จำนวนขั้นตอนทั้งหมดที่วัดได้ ขั้นตอนจะดำเนินการเมื่อลูกตุ้มสัมผัสสวิตช์ไกล (x> = l) และสวิตช์ใกล้ (x <= 0) กรณีทดสอบ 8, [8, 3, 0, 1, 0, 2, 2, 9, 4, 7] 1 ลูกตุ้มทำให้สัมผัสกับสวิตช์ไกลที่ x = 8 ที่ t = 0 ทันที …

3
เส้นทางที่ยาวที่สุดบนเครื่องบิน 2d
คุณได้รับชุดค่าพิกัดอาร์บิทอล, ไม่ซ้ำกัน, 2d, จำนวนเต็มคาร์ทีเซียน: เช่น [(0,0), (0,1), (1,0)] ค้นหาเส้นทางที่ยาวที่สุดที่เป็นไปได้จากชุดพิกัดนี้โดยมีข้อ จำกัด ว่าพิกัดสามารถ "เยี่ยมชม" เพียงครั้งเดียว (และคุณไม่ได้ "กลับมา" เพื่อประสานงานที่คุณเริ่มต้น) สำคัญ: คุณไม่สามารถ "ส่งต่อ" พิกัดหรือรอบ ๆ ตัวอย่างเช่นในตัวอย่างบันทึกย่อล่าสุด (รูปสี่เหลี่ยมผืนผ้า) คุณไม่สามารถย้ายจาก D เป็น A โดยไม่ได้ไปที่ C (ซึ่งอาจเป็นการตรวจทานซ้ำ สิ่งนี้ชี้ให้เห็นโดย @FryAmTheEggman ฟังก์ชั่นอินพุต:อาร์เรย์ของพิกัดคาร์ทีเซียนแบบ 2d ฟังก์ชั่นเอาท์พุท:ความยาวสูงสุดเท่านั้น ผู้ชนะ: รหัสที่สั้นที่สุดชนะไม่มีการระงับ (ไม่ประหยัดเวลามากที่สุด) ตัวอย่าง 1 : ในกรณีนี้แสดงไว้ข้างต้นเส้นทางที่ยาวที่สุดที่ไม่มีพิกัด "เข้าชม" สองครั้งคือ A -> B -> O (หรือ …

6
ลักษณะทั่วไปของตัวย่อ
กำหนดอินพุตของรายการคำและตัวย่อของเอาต์พุตเอาต์พุตรูปแบบที่สามารถสร้างตัวย่อได้ ขอให้เรานำตัวอย่างของ potato ptao puzzle pzze เป็นตัวอย่าง (นั่นคือตัวย่อสำหรับpotatoคือptaoและตัวย่อสำหรับpuzzleคือpzze) พิจารณาวิธีการที่เป็นไปได้ที่จะได้รับจากptao วิธีการหนึ่งที่เป็นไปได้คือการใช้ครั้งแรกสามสี่และหกตัวอักษรซึ่งเราจะเรียกว่าpotato 1346แต่เนื่องจากtและoปรากฏหลายครั้งในคำว่ามีหลายวิธีที่เป็นไปได้อื่น ๆ เพื่อสร้างptaoจากpotato: 1546, และ13421542 ในทำนองเดียวกันทราบว่าpzzeสามารถสร้างขึ้นจากpuzzleกับใด ๆ ของ1336, 1346, ,1436 1446รูปแบบเดียวที่ทั้งสองตัวย่อที่มีเหมือนกันคือ1346; ดังนั้นต้องเป็นเอาต์พุตสำหรับอินพุตนี้ หากเป็นไปได้หลายรูปแบบคุณอาจส่งออกรูปแบบใดรูปแบบหนึ่งหรือทั้งหมด (อย่างน้อยหนึ่งรูปแบบ) คุณอาจคิดว่า: คำที่ป้อนและตัวย่อมีตัวอักษรพิมพ์เล็กเท่านั้น มีคู่ของคำ / ตัวย่ออย่างน้อยหนึ่งคู่ในอินพุต มันเป็นไปได้สำหรับทุกตัวย่อที่จะเกิดขึ้นจากคำที่เกี่ยวข้อง จะมีรูปแบบอย่างน้อยหนึ่งรูปแบบที่ใช้ตัวย่อทุกตัว ความยาวสูงสุดของแต่ละคำคือ 9 ตัวอักษร อินพุตอาจถูกใช้เป็นอย่างใดอย่างหนึ่งต่อไปนี้: อาร์เรย์ 2 มิติ / รายการ / อาร์เรย์ของ tuples / etc [[word, abbr], [word, abbr], ...] …
14 code-golf  string 

2
Micromanagement ร้านขายของชำ
คุณเป็นพนักงานที่ร้านขายของชำใหม่สุดฮิปฟู้ดฟู้ดส์และเป็นวันก่อนวันขอบคุณพระเจ้า คริสต์มาสอีสเตอร์ เนื่องจากร้านค้าจะเต็มไปด้วยลูกค้าที่เร่งรีบเพื่อซื้ออาหารร้านค้าจึงต้องการผู้จัดการจราจรเพื่อส่งทุกคนไปยังสายที่เหมาะสม เป็นคนขี้เกียจคุณอยากจะทำสิ่งนี้โดยอัตโนมัติเพื่อที่คุณจะได้ไปตีเดลี่ก่อนที่ทุกคนจะเอาไก่งวง แฮมไปทำอะไรก็ได้ อย่างไรก็ตามสิ่งที่คุณมีกับคุณคือโทรศัพท์ของคุณและการเขียนโปรแกรมยาว ๆ เป็นความเจ็บปวดที่แท้จริง - ดังนั้นคุณจำเป็นต้องฝึกฝนทักษะการใช้รหัสกอล์ฟของนินจา ท้าทาย ลองนึกภาพร้านขายของชำบนตารางสองมิติ นี่คือตารางตัวอย่างที่จะผ่า: e s s s Y # # #s # #s # #s # #s # #s # #s #s #s # #3 #1 #4 # x x x x กริดเริ่มต้นด้วยe, ซึ่งหมายถึง "ทางออก" ไปยังส่วนที่เหลือของร้านค้า ทุกรุ่นร้านค้าทั้งหมดในตารางวางไข่ผู้ซื้อ ( s) ด้านล่างโดยตรง …
14 code-golf  string  grid 

6
แสดงเวลาปัจจุบันในรูปแบบ ASCII
ท้าทาย งานของคุณคือการส่งออกเวลา (ในเวลา 12 ชั่วโมง) ใน ascii art ตัวละครทั้งหมดที่จะใช้มีดังนี้: ___ __ ___ ____ _ _ _____ __ ______ / _ \ /_ | |__ \ |___ \ | || | | ____| / / |____ | | | | | | | ) | __) | | || |_ | …

11
พาร์ติชันที่เข้มงวดของจำนวนเต็มบวก
OEIS A000009นับจำนวนพาร์ติชันที่เข้มงวดของจำนวนเต็ม พาร์ทิชันที่เข้มงวดของติดลบnเป็นชุดของจำนวนเต็มบวก (จึงไม่มีการทำซ้ำที่ได้รับอนุญาตและการสั่งซื้อไม่ได้เรื่อง) nรวมว่า ยกตัวอย่างเช่น 5 มีสามพาร์ทิชันที่เข้มงวด: 5, และ4,13,2 10 มีสิบพาร์ติชัน: 10 9,1 8,2 7,3 6,4 7,2,1 6,3,1 5,4,1 5,3,2 4,3,2,1 ท้าทาย รับจำนวนเต็มไม่ใช่ลบn<1,000 ส่งออกจำนวนพาร์ทิชันที่เข้มงวดมันมี กรณีทดสอบ: 0 -> 1 42 -> 1426 นี่คือรายการของหมายเลขพาร์ติชันเข้มงวดจาก 0 ถึง 55 จาก OEIS: [1,1,1,2,2,3,4,5,6,8,10,12,15,18,22,27,32,38,46,54,64,76,89,104,122,142,165,192,222,256,296,340,390,448,512,585,668,760,864,982,1113,1260,1426,1610,1816,2048,2304,2590,2910,3264,3658,4097,4582,5120,5718,6378] นี่คือโค้ดกอล์ฟดังนั้นทางออกที่สั้นที่สุดในหน่วยไบต์ชนะ

5
ค้นหาแนวชายฝั่ง
งานของคุณคือการหาความยาวของแนวชายฝั่งของแผนที่เกาะที่ระบุในแผนที่ ASCII แผนที่นำเข้าจะประกอบด้วย#อักขระอย่างน้อย 1 ตัวที่ระบุที่ดินและช่องว่างที่ระบุถึงน้ำ แนวชายฝั่งถือว่าเป็นขอบระหว่างที่ดินกับน้ำรวมถึงทะเลสาบและเกาะต่างๆ โซลูชันของคุณควรเป็นโปรแกรมที่สมบูรณ์ที่อ่านในไฟล์สตริงหรืออาร์เรย์ของสตริงและส่งออกจำนวนเต็มเดียวไปยังหน้าจอหรือ stdout แต่ละบรรทัดอินพุตอาจมีช่องว่างนำหน้าหรือต่อท้ายและอักขระแฮชเป็นศูนย์หรือมากกว่า เส้นขอบของแผนที่ถือเป็นช่องว่าง (น้ำ) เส้นอาจมีความยาวต่างกัน ตัวอย่าง: Input: ## ## Output: 8 Input: ### ### ##### # ## Output: 26 Input: ##### # # # # # # # ##### Output: 36 นี่คือรหัสกอล์ฟดังนั้นจำนวนไบต์ที่น้อยที่สุดจึงชนะ

10
แปลงภาษาอังกฤษเป็นตัวเลขที่ไม่มีบิวด์อินหรือไลบรารี่
ความท้าทายนี้คล้ายกับของอื่น ๆแต่ฉันทำข้อ จำกัด (ดูข้อความที่เป็นตัวหนาด้านล่าง) ที่ฉันคิดว่าจะทำให้แตกต่างกันมากและ (ฉันหวังว่า) จะสนุก ความท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นในภาษาการเขียนโปรแกรมใด ๆ ที่ใช้เป็นชื่อภาษาอังกฤษของจำนวนเต็มบวกnไม่เกิน100และส่งกลับnเป็นจำนวนเต็ม ช่องโหว่มาตรฐานเป็นสิ่งต้องห้ามและคุณจะไม่สามารถใช้ฟังก์ชั่นเครื่องมือภายนอกหรือห้องสมุดที่มีอยู่แล้วไม่งานนี้ รหัสแหล่งที่สั้นที่สุดเป็นไบต์ชนะ ทดสอบ ที่นี่ทุกinput->outputกรณี: one -> 1 two -> 2 three -> 3 four -> 4 five -> 5 six -> 6 seven -> 7 eight -> 8 nine -> 9 ten -> 10 eleven -> 11 twelve -> …

9
ควินที่จัดทำดัชนีได้
เป้าหมายของการท้าทายนี้คือการสร้างโปรแกรมที่ให้ผลลัพธ์ตัวอักษรที่ n ของซอร์สโค้ดโดยที่ n ถูกกำหนดเป็นอินพุตให้กับโปรแกรม เช่นเดียวกับการท้าทายควินหลามส่วนใหญ่คุณไม่ได้รับอนุญาตให้อ่านซอร์สโค้ดของคุณเป็นไฟล์หรือใช้ฟังก์ชันควินินในตัว อินพุต จำนวนเต็ม 0 <= n <len (โปรแกรม) เอาท์พุต อักขระที่ n (ไม่ใช่ไบต์) ของโปรแกรมของคุณ การชนะ เช่นเดียวกับคำถาม codegolf ส่วนใหญ่คุณจะได้รับความท้าทายโดยใช้จำนวนไบต์ต่ำที่สุดในการแก้ปัญหา โบนัส -5% หากโปรแกรมของคุณรองรับสไตล์ดัชนีลบ (เช่น -1 จะเป็นอักขระตัวสุดท้ายของโปรแกรมของคุณ) หากใช้กับโบนัสด้านล่างช่วงของคุณจะต้องสนับสนุนดัชนีเชิงลบ -20% หากโปรแกรมของคุณรองรับช่วงเป็นอินพุต (ทุกรูปแบบ) นอกเหนือจากข้อกำหนดข้างต้น -25% หากโปรแกรมของคุณเติมโบนัสทั้งคู่ ลีดเดอร์ นี่เป็นตัวอย่างข้อมูลเพื่อสร้างทั้งกระดานผู้นำปกติและภาพรวมของผู้ชนะตามภาษา เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้: # Language Name, N bytes ที่Nมีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในบรรทัดแรกโดยการตีพวกเขาผ่าน ตัวอย่างเช่น # Ruby, …
14 code-golf  quine 

18
การเพิ่มจำนวนทศนิยมของสตริง
รับ 2 อินพุตสตริงและเลขทศนิยมส่งออกสตริงที่คูณด้วยตัวเลขนั้น การจับคือจำนวนสามารถเป็นจำนวนลอยหรือจำนวนเต็ม คุณควรเอาท์พุตfloor(n)เวลาสตริงและจากนั้นfloor((n-floor(n))*len(string))ตัวอักษรแรกอีกครั้ง หมายเหตุอื่น ๆ : อินพุตจะไม่ลอยตัวเสมอไปอาจเป็น int ดังนั้น 1.5, 1 และ 1.0 จึงเป็นไปได้ทั้งหมด มันจะอยู่ในฐาน 10 เสมอและหากคุณต้องการข้อยกเว้นโปรดแสดงความคิดเห็น อินพุตสตริงอาจมีช่องว่างคำพูดและอักขระอื่น ๆ ไม่มีการขึ้นบรรทัดใหม่หรือตัวอักษรควบคุม ไม่มีบิวด์อินสำหรับการทำซ้ำสายโดยตรงแม้'a'*5จะอนุญาตให้ใช้การคูณสตริงเช่น python อย่างไรก็ตามอนุญาตให้เพิ่มสตริงได้ กรณีทดสอบ: เครื่องหมายจุลภาคและช่องว่างแยกอินพุต test case, 1 -> test case case, 2.5 -> casecaseca (will add more later), 0.3333 -> (will(space) cats >= dogs, 0.5 -> cats …
14 code-golf  string 

6
นาฬิกา (เกมไพ่)
Clockเป็นเกมไพ่ที่น่าสนใจเพราะไม่ต้องใช้ทักษะ มันเป็นเกมที่เล่นคนเดียวและการกำหนดค่าการ์ดเดียวกันจะนำไปสู่การชนะหรือแพ้ ในความท้าทายนี้คุณจะต้องคิดออกว่าได้รับชัยชนะการกำหนดค่าบัตรหรือสูญเสีย คุณสามารถเล่นเกมที่นี่ เกมนี้เล่นดังต่อไปนี้: มีกองไพ่สิบสามกองคว่ำหน้าลง แต่ละกองมีจำนวนตั้งแต่ 0 ถึง 12 เราตั้งค่ากองที่ 0 ให้เป็นกองปัจจุบัน เราพลิกไพ่อันดับต้น ๆ ของกองหน้าปัจจุบันขึ้น เราย้ายใบหน้าบัตรที่ด้านล่างของกองที่เกี่ยวข้องของตน(บัตร 4 ไปภายใต้กองที่ 4) การ์ดยังคงหงายหน้าอยู่ กองนี้กลายเป็นกองปัจจุบัน หากกองปัจจุบันหงายขึ้นโดยสมบูรณ์แล้วเกมจะจบลง มิฉะนั้นกลับไปที่ขั้นตอนที่ 3 เคล็ดลับ: เกมจะจบลงที่กองที่ 0 เสมอ เกมนี้ชนะถ้าไพ่ทุกใบหงายหน้าและแพ้ถ้ามีไพ่คว่ำหน้าอยู่ Input / Output อาร์เรย์ 2D ที่มีเสาเข็มแต่ละอัน การ์ดจะแสดงด้วยตัวเลขตั้งแต่ 0 ถึง 12 (ชุดไม่เกี่ยวข้องและไม่ได้รับ) การ์ดอันดับต้นของแต่ละกองเป็นองค์ประกอบแรกของแต่ละอาร์เรย์ คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นมีรูปแบบที่ถูกต้อง: มันจะมีไพ่ 52 ใบจาก 0 ถึง 12 (รวม) …

6
จดหมายย้าย! จุด 2
ตัวอักษรตัวแรกรับการเคลื่อนย้าย! เป็นที่นิยมมาก แต่มีส่วนร่วม จำกัด อันนี้จะแก้ได้ง่ายขึ้น แต่หวังว่าจะมีลูกเล่นในการตีกอล์ฟ คุณจะได้รับสายอักขระตัวพิมพ์เล็กเท่านั้น สำหรับตัวอักษรแต่ละตัวที่มีตำแหน่งในตัวอักษรmย้ายมันเพื่อให้มันกลายเป็นตัวอักษรที่mจากท้าย หากค่าของmยาวกว่าความยาวของสตริงให้ย้ายไปยังส่วนหน้า เอาต์พุตเฉพาะสตริงที่ถูกแปลงอย่างสมบูรณ์ ตัวอย่าง: "ยีราฟ" 'g' เป็นตัวอักษรตัวที่ 7 ในตัวอักษรมันเป็นตัวอักษรที่ 7 จากด้านหลังแล้วดังนั้นทิ้งไว้ 'i' เป็นตัวอักษรที่ 9 เนื่องจาก 9 มีขนาดใหญ่กว่าความยาวของคำจึงไปที่ด้านหน้าดังนั้นสตริงจึงกลายเป็น igraffe 'r' เป็นตัวอักษรที่ 18 เหมือนกับ 'i' ซึ่งจะอยู่ด้านหน้า: rigaffe 'a' เป็นตัวอักษรตัวที่ 1 มันไปถึงจุดสิ้นสุด: rigffea 'f' เป็นตัวอักษรตัวที่ 6 มันจะกลายเป็นตัวที่ 6 จากด้านหลัง: rfigfea ถัดไป 'f' เป็นตัวอักษรตัวที่ 6 ดังนั้นมันจึงไปที่อันดับ 6 …

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