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

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

7
ทำควายผสมผสาน
งานของคุณคือการสร้างโปรแกรมที่เมื่อทำงานจะส่งคืนตัวเองเป็นเอาท์พุท (ซึ่งเรียกว่าควินิน) อย่างไรก็ตามควินินนี้จะต้องnส่งคืนควินินเมื่อมีการคัดลอกเวลา แต่ด้วยอักขระแต่ละตัวที่ซ้ำกันในnเวลาที่nเป็นจำนวนเต็มบวก หากโปรแกรมดั้งเดิมของคุณคือDerp: Derp -> Derp (must return itself as output to be a quine) DerpDerp -> DDeerrpp (the "Derp" is copied twice, so each character in the output has to be copied twice) DerpDerpDerp -> DDDeeerrrppp etc. etc. โปรดทราบว่าคุณได้รับอนุญาตให้มีช่องว่างในโปรแกรม "base" ของคุณ แต่จะถูกนับเมื่อ "interweaving" สมมติว่าโปรแกรมของคุณคือ Derp {newline} (ขึ้นบรรทัดใหม่หมายถึงการขึ้นบรรทัดใหม่และมีพื้นที่เพิ่มเติมหลังจากDerp) …

2
ม้วนเค้กวลี
เค้กม้วนเป็นขนมแสนอร่อยที่ทำด้วยชั้นของเค้กฟองน้ำชั้นของครีม (หรือไอศครีม) ที่รีดเป็นเกลียวให้ดูที่วิกิพีเดีย งานของคุณคือการรับสายอักขระวลีที่ไม่ว่างเปล่าจากอินพุตมาตรฐานถอดช่องว่างออกแล้วม้วนเป็นม้วนเค้กเริ่มจากกึ่งกลางทางขวาไปซ้ายในทิศทางทวนเข็มนาฬิกาในขณะที่ช่องว่างเริ่มต้นที่ด้านล่างของแรก ตัวละครวลีจากกึ่งกลางซ้ายไปขวาเช่นในตัวอย่างต่อไปนี้ โปรดทราบว่าวลีจะเป็นเลเยอร์ของเค้กฟองน้ำและเลเยอร์ครีมจะแสดงเป็นช่องว่าง Input: Lorem ipsum dolor sit amet, consectetu adipiscing elit, sed do eiusmod Output with spaces ' ' represented as _ ilegnicsip t________i ,_srolod_d s_i____m_a e_t_oL_u_u d_a_r__s_t d_m_emip_e o_e______t e_t,consec i____ usmod กรณีทดสอบ Input: Lorem ipsum dolor sit amet, consectetu adipiscing elit, sed do eiusmod …

6
มันเป็นอิโมจิหรือไม่
ฉันได้ทำงานกับแอพ iOS เมื่อเร็ว ๆ นี้และฉันพบปัญหา (แก้ไขได้ค่อนข้างง่าย): ฉันจะทราบได้อย่างไรว่าสตริงของฉันประกอบด้วยอิโมจิเท่านั้น นั่นคืองานของคุณวันนี้! อินพุต สตริง. หากการปรากฏตัวของ Unicode เป็นปัญหาสำหรับคุณคุณอาจใช้รูปแบบที่เหมาะสมอื่น โปรดระบุสิ่งที่คุณทำถ้าคุณทำบางสิ่งที่แตกต่างจากสตริงปกติสำหรับการป้อนข้อมูล เอาท์พุต พิมพ์หรือคืนค่าความจริงหากสตริงอินพุตมีเพียงอิโมจิและค่าเท็จถ้ามันมีตัวละครอื่น ๆ ที่นอกเหนือจากอิโมจิ รอแป๊บนึง ... อิโมจิคืออะไร? 😅 อีโมจิเป็นตัวละครที่อยู่ในช่วงเหล่านี้: 0x1F600...0x1F64F // Emoticons 0x1F300...0x1F5FF // Misc Symbols and Pictographs 0x1F680...0x1F6FF // Transport and Map 0x2600...0x26FF // Misc symbols 0x2700...0x27BF // Dingbats 0xFE00...0xFE0F // Variation Selectors (ฉันคิด) นี่คือ🔹 …

20
เอาท์พุทกล่องสวย
ความท้าทายของคุณคือการส่งออกกล่องต่อไปนี้: .................................................. .................................................. .. .. .. .. .. ++++++++++++++++++++++++++++++++++++++++++ .. .. ++++++++++++++++++++++++++++++++++++++++++ .. .. ++ ++ .. .. ++ ++ .. .. ++ .................................. ++ .. .. ++ .................................. ++ .. .. ++ .. .. ++ .. .. ++ .. .. ++ .. .. ++ .. ++++++++++++++++++++++++++ .. ++ .. …

2
การสั่งซื้อสายที่ทับซ้อนกัน
(แรงบันดาลใจขณะวาดภาพบนกระดานลบแบบแห้ง) ท้าทาย: รับสตริงอินพุตที่มีอักขระที่แสดงสีที่แตกต่างกันของเครื่องหมายลบแบบแห้งบนกระดานสีขาวให้เรียงลำดับตามลำดับจากช่วงแรกถึงสุดท้าย การป้อนข้อมูล: สตริงที่มีสีมาร์กเกอร์ลบแบบแห้งซึ่งแสดงด้วยตัวอักษรตามตัวอักษร (ส่วนบนนั้นแตกต่างจากตัวพิมพ์เล็กคุณสามารถแทนที่อักขระใด ๆ ที่ใช้ในตัวอย่างของฉันตราบใดที่แต่ละสีมีตัวอักษรที่แตกต่างกัน) ไวท์บอร์ดส่วนที่เหลือจะเป็น white-space จะมีเพียงหนึ่งบรรทัดของแต่ละสีต่อบอร์ด จะไม่มีอินพุตที่ทุกบรรทัดทับซ้อนกัน (ดูกรณีทดสอบ4) เส้นทุกเส้นจะตรงและเป็นแนวนอนหรือแนวตั้ง เอาท์พุท: ลำดับที่ลากเส้นบนกระดานจากอันแรกที่ลากไปถึงอันสุดท้าย หากมีวิธีแก้ไขปัญหาหลายประการสำหรับอินพุตใด ๆ คุณสามารถส่งออกหนึ่งในโซลูชันเหล่านั้นได้ คุณสามารถจัดรูปแบบผลลัพธ์ได้ตามที่คุณต้องการ: อักขระสตริงเดียวหรือคั่นด้วยช่องว่างบรรทัดใหม่ ฯลฯ ตราบใดที่อักขระที่ใช้ตรงกับที่ใช้ในการป้อนข้อมูลของคุณ กรณีทดสอบ: อินพุต 1: R R BBRBB R เอาท์พุท 1: BR อินพุต 2: GY GY RRRRGYRRR GY GY BBBBBBBB GY GY เอาท์พุท 2: RGYB // or RYGB อินพุต …
17 code-golf  string 

9
นี่เป็นตัวเลขหรือไม่?
โหมโรง: ฉันต้องการฝึกทำเคสทดสอบดังนั้นฉันจะลองทำสิ่งที่ง่าย ท้าทาย: รับอินพุต (สตริง) ใด ๆ (ภายในช่วง ASCII ที่มองเห็นได้) และอนุมานว่าเป็นตัวเลขและแสดงผลลัพธ์ที่สามารถใช้ในการประเมินได้หรือไม่ กฎ: ตัวเลขจะประกอบด้วยอักขระเท่านั้น -0123456789,. รู้รอบจำเป็นต้องใช้เพื่อรับรู้ตัวเลขระหว่าง -1000000000 ถึง 1000000000 (พิเศษ) แต่อาจรับรู้จำนวนมากโดยพล คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น หากตัวเลขให้ส่งคืนสิ่งใดก็ตามที่สามารถนำมาใช้เพื่อแยกแยะและจัดทำเอกสารผลลัพธ์ในคำอธิบาย (เช่นMy program outputs T if a number, F if not.) ข้อมูลที่ป้อนจะเป็นจำนวนอักขระใด ๆ ภายในช่วง ASCII หรือว่างเปล่า (หากว่างเปล่าส่งคืนสิ่งที่คุณส่งออกหากไม่ใช่ตัวเลข) ตัวเลขอาจมีจุดทศนิยม (เช่น3.14) หากมีจะต้องมีหลักอย่างน้อยหนึ่งหลักก่อนจุดทศนิยมและอย่างน้อยหนึ่งหลัก ตัวเลขอาจมีเลขศูนย์นำหน้าหรือต่อท้าย (เช่น 000001.00000 ) ส่วนจำนวนเต็มของตัวเลขสามารถแบ่งออกเพื่อให้สามารถอ่านได้เป็นจำนวนสามหลักด้วยเครื่องหมายจุลภาค (เช่น1,000.23456) ในกรณีนี้พวกเขาจะต้องถูกแบ่งออกทุกสามตัวเลขจากขวาไปซ้าย (อดีต. 1,234,567, …

4
การจราจรติดขัด 2D
Biham-Middleton-Levineเป็นระบบอัตโนมัติเซลลูลาร์ที่จัดระเบียบตัวเองซึ่งจำลองรูปแบบการรับส่งข้อมูลที่ง่ายขึ้น ประกอบด้วยจำนวนรถยนต์ที่เป็นตัวแทนจากจุดบนโครงตาข่ายที่มีตำแหน่งเริ่มต้นแบบสุ่มซึ่งรถแต่ละคันอาจเป็นหนึ่งในสองประเภท: รถยนต์ที่เลื่อนลงด้านล่างเท่านั้น ขวา (แสดงเป็นสีแดงในบทความนี้) รถยนต์ทั้งสองประเภทเลี้ยวไปไหนมาไหน ในแต่ละเทิร์นทุกคันสำหรับประเภทที่เกี่ยวข้องล่วงหน้าหนึ่งก้าวหากพวกเขาไม่ได้ถูกบล็อคโดยรถคันอื่น งานของคุณคือการมองเห็นโมเดลนี้เป็นภาพเคลื่อนไหว นี่คือการสาธิตที่ดี อินพุต จำนวนจุดลอยตัวระหว่าง 0 ถึง 1 แสดงถึงความหนาแน่นและจำนวนเต็มสองจำนวนแทนความสูงและความกว้างของตารางที่แสดง สมมติว่าอินพุตถูกต้องและพารามิเตอร์ของฟังก์ชันหรือการอ่านจากอินพุตของผู้ใช้นั้นใช้ได้ทั้งคู่ ตัวอย่าง: 0.38 144 89(สอดคล้องกับภาพด้านบน) เอาท์พุต กริดอย่างน้อย 80x80 ที่แสดงภาพเคลื่อนไหวของรุ่นนี้ทำงาน ในตอนแรกรถยนต์จะถูกสุ่มวางบนกริดจนกระทั่งกริดถึงความหนาแน่นอินพุตด้วยสีแดงครึ่งและสีน้ำเงินครึ่ง (นั่นคือความหนาแน่นคูณด้วยจำนวนรวมของกริดสแควร์ส ความหนาแน่นต้องเป็นค่านี้ซึ่งหมายความว่าคุณไม่สามารถเติมความหนาแน่นของแต่ละเซลล์ให้เต็มความน่าจะเป็น ในแต่ละขั้นตอนรถประเภทหนึ่งอาจเลื่อนลงหรือหมุนไปทางขวาหากว่าผ่านไปได้ ประเภทของรถยนต์ที่เคลื่อนที่สลับในแต่ละขั้นตอน ในการทำให้ภาพเคลื่อนไหวสามารถดูได้ต้องมีอย่างน้อย 10 ms ระหว่างแต่ละขั้นตอน กฎระเบียบ รถยนต์สามารถเป็นสีหรือสัญลักษณ์ใด ๆ ตราบเท่าที่พวกเขาสามารถแยกออกจากกันและพื้นหลังและรถแต่ละประเภทเป็นสีหรือสัญลักษณ์เดียวกัน ทั้งคอนโซลและเอาต์พุตกราฟิกได้รับอนุญาต สำหรับเอาต์พุตคอนโซลสัญลักษณ์ที่พิมพ์ได้ใด ๆ นั้นใช้ได้ แต่เอาต์พุตต้องเป็นกริดของอักขระ โปรดระบุประเภทผลลัพธ์ที่คุณได้รับหากคุณไม่มีภาพหน้าจอหรือ gif การจำลองจะต้องทำงานตลอดไป ผลลัพธ์เป็นบิตที่ซับซ้อนดังนั้นหากคุณมีคำถามใด ๆ โปรดแสดงความคิดเห็น

9
มาร์คอฟเชนควิน
คำถามมาร์คอฟแบบง่ายจะใช้ในคำถามนี้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโซ่มาร์คอฟดูhttp://setosa.io/ev/markov-chains/ ใช้สตริง สำหรับตัวอย่างนี้เราจะใช้คำว่า: reader ทีนี้สำหรับตัวละครแต่ละตัวให้นำตัวละครที่ปรากฏหลังตัวละครแต่ละตัวในสตริง ( ​`^`​หมายถึงจุดเริ่มต้นของสตริงและ​`$`​แสดงถึงจุดสิ้นสุด) `^` -> {'r'} # After the start of the string, there is an `r`. 'r' -> {'e', `$`} # After the first `r` (*r*eader), there is an `e` # after the second (reade*r*), there is the end of the string. 'e' -> …

15
คำนวณหมายเลข Eulerian
จำนวน Eulerian A(n, m)คือจำนวนของพีชคณิตของ[1, 2, ..., n]ที่ว่าmองค์ประกอบมากกว่าองค์ประกอบก่อนหน้านี้ เหล่านี้เรียกว่าเพิ่มขึ้น ตัวอย่างเช่นถ้าn = 3มี 3! = 6 การเรียงสับเปลี่ยนของ[1, 2, 3] 1 2 3 < < 2 elements are greater than the previous 1 3 2 < > 1 ... 2 1 3 > < 1 ... 2 3 1 < > 1 ... …

24
ผกผัน Deltas ของอาเรย์
ผกผัน Deltas ของอาเรย์ งานของคุณคือมอบอาร์เรย์ของจำนวนเต็ม 32 บิตที่เซ็นชื่อแล้วคอมไพล์ใหม่ด้วยเดลต้าผกผัน ตัวอย่างเช่นรายการ 1 3 4 2 8 ถือสันดอน: 2 1 -2 6 ซึ่งเมื่อตะกี้แล้วยอม: -2 -1 2 -6 และ recompiled ยอม: 1 -1 -2 0 -6 เป็นผลสุดท้าย Input / Output คุณจะได้รับรายการ / อาร์เรย์ / ตาราง / tuple / stack / etc ของจำนวนเต็มที่ลงนามเป็นอินพุตผ่านวิธีการอินพุตมาตรฐานใด ๆ คุณต้องส่งออกข้อมูลที่ถูกแก้ไขอีกครั้งในรูปแบบที่ยอมรับได้ใด ๆ โดยทำตามวิธีการเปลี่ยนเดลต้าด้านบน …

25
แคตตาล็อกสินค้า
ปัญหานี้เกี่ยวกับการแยกสตริงที่แสดงตัวระบุผลิตภัณฑ์ออกเป็นสามองค์ประกอบ ส่วนแรกประกอบด้วยตัวอักษรบนและล่างของความยาวโดยพลการซึ่งหมายถึงคลังสินค้า ส่วนที่สองคือตัวเลขที่แสดงถึงหมายเลขผลิตภัณฑ์ ส่วนนี้ยังมีความยาวตามอำเภอใจ ส่วนสุดท้ายคือตัวระบุขนาดและสีและส่วนนี้จะดำเนินต่อไปจนถึงจุดสิ้นสุดของสตริง ผู้รับรองจะได้รับการประกันให้เริ่มต้นด้วยอักษรตัวใหญ่และประกอบด้วยตัวอักษรและตัวเลข แต่ละส่วนควรพิมพ์แยกกันอย่างชัดเจน รับประกันได้ว่าแต่ละส่วนจะไม่ว่างเปล่า ผู้ชนะคือผู้ที่ใช้ไบต์น้อยที่สุดในการแก้ปัญหานี้ ตัวอย่าง: อินพุต: UK7898S14 เอาต์พุต: UK 7898 S14 สหราชอาณาจักรคือสหราชอาณาจักร 7898 เป็นรหัสผลิตภัณฑ์และ S14 คือขนาด 14 ตัวอย่างที่ 2: อินพุต: cphDK1234CYELLOWS14QGOOD เอาต์พุต: cphDK 1234 CYELLOWS14QGOOD ที่นี่ cphDK คือโคเปนเฮเกนเดนมาร์ก 1234 เป็นรหัสผลิตภัณฑ์ CYELLOWS14QGOOD แสดงสีเหลืองขนาด 14 และคุณภาพดี
17 code-golf  string 

24
Fibonacci สลับ
ในการสลับลำดับฟีโบนักชีคุณเริ่มต้นด้วย1และ1ตามปกติ อย่างไรก็ตามแทนที่จะเพิ่มค่าสองค่าล่าสุดเสมอเพื่อให้ได้หมายเลขถัดไปคุณสามารถเลือกเริ่มต้นด้วยการเพิ่มและทุกครั้งที่คุณลบแทน ลำดับเริ่มต้นดังนี้: 1 1 2 # 1 + 1 -1 # 1 - 2 1 # 2 + -1 -2 # -1 - 1 -1 # 1 + -2 -1 # -2 - -1 -2 # -1 + -1 1 # -1 - -2 -1 # -2 + 1 …

3
ระยะ Hamming ที่เล็กที่สุดไปจนถึง palindrome ที่มีซับสตริง
นี้ได้รับแรงบันดาลใจจากคำถาม CS.SE เอาออกตอนนี้ งาน กำหนดสตริงอินพุต A และ B ที่ไม่ว่างสองสตริงให้เอาต์พุตเป็นระยะทางที่เล็กที่สุดจาก A ไปยัง palindrome ที่มี B เป็นสตริงย่อย ระยะทางถูกกำหนดโดยจำนวนการแทนที่อักขระ ( ระยะทาง Hamming ) ข้อ จำกัด Sensible input: palindrome มีอยู่ ซึ่งหมายความว่า | A | ≥ | B | A และ B มีอักขระ ASCII ที่ต่ำกว่าเท่านั้นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่จะแตกต่างกัน (เช่นเดียวกับอักขระอื่น ๆ ทั้งหมด) หากภาษาของคุณไม่สามารถจัดการกับอักขระ ASCII ได้คุณอาจใช้จำนวนเต็ม (หรือชนิดข้อมูลที่เหมาะสมอื่น ๆ ) ได้เช่นกันและคุณอาจเลือกที่จะ …

15
ความท้าทายการเปลี่ยนตัวอักษร
ความคิดนั้นง่าย คุณต้องสร้างการแทนที่ตัวอักษร "visualized" โดยการให้ 3 สตริง (สามารถคั่นด้วยเครื่องหมายจุลภาค, อินพุตแยกต่างหากหรือเป็นอาร์เรย์) ส่วนแรกคือคำที่คุณต้องการแก้ไขและส่วนที่สองคือตัวอักษรที่คุณต้องการแทนที่และส่วนที่สามคือการแทนที่ตัวอักษรในส่วนที่ 2 ตัวอย่างเช่น: | | Input | Starting Word | Output | |----|-----------------------------|---------------|-------------| | #1 | Hello world -wo -ld +Ea +th | Hello world | Hello Earth | | #2 | Hello World -wo -ld +Ea +th | Hello World | …
17 code-golf  string 

6
ลูกบาศก์ข้อความ text
ครั้งล่าสุดที่คุณสร้างข้อความแต่ตอนนี้คุณสามารถสร้างข้อความลูกบาศก์ได้หรือไม่? ความท้าทาย กำหนดสตริงให้ส่งออกสตริงในรูปแบบของคิวบ์ คุณสามารถสันนิษฐานได้ว่าสตริงจะมี 2 ตัวอักษรขึ้นไปเสมอและจะมีอักขระ ASCII ที่พิมพ์ได้เท่านั้น วิธีการสร้างคิวบ์ข้อความ กรณีทดสอบ Input: Test Output: Test e ss s e e tseT T s e e e ss Test Input: Hello, world! Output: Hello, world! e dd l l l l r r o o o , w w w , , …

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