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

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

11
คุณสะกดคำนี้ด้วยลูกเต๋าเหล่านี้ได้ไหม?
ลูกเต๋าตัวอักษรเป็นเรื่องธรรมดาในเกมคำศัพท์ มันเป็นเรื่องสนุกที่จะลองสะกดคำตลกด้วยลูกเต๋าเกรงกลัว หากคุณหยิบลูกเต๋าสักหนึ่งโอกาสคุณจะไม่สามารถสะกดคำบางคำได้ ความท้าทายนี้เป็นภาพรวมของแนวคิดนั้น ท้าทาย เมื่อระบุรายชื่อของลูกเต๋าที่แต่ละคนมีอย่างน้อย 1 หน้าและหนึ่งคำงานของคุณคือการพิจารณาว่าเป็นไปได้หรือไม่ที่จะสะกดคำนั้นโดยใช้ลูกเต๋าที่ระบุ (ในกรณีนี้ควรส่งคืนผลลัพธ์จริง) สามารถใช้ตัวอักษรจากแต่ละตัวได้เพียงตัวเดียวและสามารถใช้ตัวอักษรได้เพียงครั้งเดียวเท่านั้น คุณไม่จำเป็นต้องใช้ลูกเต๋าที่ให้มาทั้งหมด ตัวอย่าง ในตัวอย่างเล็ก ๆ น้อย ๆ กับลูกเต๋า [[A], [C], [T]] และสตริง CAT ผลลัพธ์จะเป็นจริง แน่นอนว่าค้างคาวจะกลับมาผิดเนื่องจากไม่มีลูกเต๋าในตัว B หากได้รับ [[A, E, I, O, U], [A, B, C, T], [N, P, R]] เป็นชุดของลูกเต๋าคุณจะกลับมาจริงสำหรับ ART, TON และ CUR แต่เป็นเท็จสำหรับ CAT, EAT และ PAN เนื่องจากสตริงเหล่านั้นจำเป็นต้องใช้ลูกเต๋าซ้ำ มันควรจะค่อนข้างชัดเจนว่า …

8
เกือบจะเป็นตอน Columbo
งานของคุณคือค้นหาตัวละครที่หายไปสองตัวในชื่อตอนของ Columbo อินพุต หนึ่งใน 69 โคลัมโบชื่อตอน (ตามที่ระบุไว้ด้านล่าง) *ตรงกับตัวละครทั้งสองถูกแทนที่ด้วย ตัวอย่าง : "Ran*om for a *ead Man" เอาท์พุต คุณอาจส่งคืนชื่อตอนเต็มหรือเพียงแค่ตัวละครสองตัวที่ขาดหายไปในรูปแบบที่สมเหตุสมผลใด ๆ โดยที่ลำดับตัวอักษรนั้นไม่คลุมเครือ เอาต์พุตที่ใช้ได้บางส่วน : "Ransom for a Dead Man" "sD" ["s", "D"] ตอน โปรดไปที่ลิงก์นี้เพื่อรับรายการที่ยังไม่ฟอร์แมต Prescription: Murder Swan Song Murder, Smoke and Shadows Ransom for a Dead Man A Friend in Deed Sex and …

30
เพิ่มสตริงเบส -36
นี่เป็นคำถามที่คล้ายกันที่ฉันถามในรุ่นก่อนหน้านี้แต่ฉันคิดว่ามันเป็นปริศนาที่น่าสนใจ รับสายอักขระที่มีความยาว 10 ซึ่งแทนหมายเลขฐาน 36 เพิ่มทีละหนึ่งและส่งคืนสตริงผลลัพธ์ ซึ่งหมายความว่าสายจะมีเพียงตัวเลขจาก0ไป9และตัวอักษรจากไปaz ฐาน 36 ทำงานดังนี้: ตัวเลขที่ถูกต้องที่สุดคือการเพิ่มค่าครั้งแรกโดยใช้0เพื่อ9 0000000000> 9 ซ้ำ> 0000000009 และหลังจากนั้นaจะzใช้: 000000000a> 25 ซ้ำ> 000000000z หากzต้องการเพิ่มค่ามันจะย้อนกลับไปที่ศูนย์และตัวเลขทางด้านซ้ายจะเพิ่มขึ้น: 000000010 กฎเพิ่มเติม: คุณสามารถใช้อักษรตัวพิมพ์ใหญ่หรือเล็กก็ได้ คุณไม่สามารถวางเลขศูนย์นำหน้าได้ ทั้งอินพุตและเอาต์พุตเป็นสตริงที่มีความยาว 10 คุณไม่จำเป็นต้องจัดการzzzzzzzzzzเป็นอินพุต กรณีทดสอบ: "0000000000" -> "0000000001" "0000000009" -> "000000000a" "000000000z" -> "0000000010" "123456zzzz" -> "1234570000" "00codegolf" -> "00codegolg"

14
นี่เป็นตัวเลขสามเหลี่ยมที่ถูกตัดทอนหรือไม่?
ลำดับ OEIS ที่เกี่ยวข้อง: A008867 หมายเลขสามเหลี่ยมที่ถูกตัดทอน คุณสมบัติทั่วไปของตัวเลขสามเหลี่ยมคือพวกเขาสามารถจัดเรียงในรูปสามเหลี่ยม ตัวอย่างเช่นใช้ 21 และจัดเป็นสามเหลี่ยมของos: โอ อู OOO oooo ooooo oooooo ลองกำหนด "การตัดปลาย:" การตัดสามเหลี่ยมขนาดเดียวกันจากแต่ละมุม วิธีหนึ่งในการตัดทอน 21 มีดังนี้: . . . OOO oooo . ooo . . oo . (รูปสามเหลี่ยม.ถูกตัดจากต้นฉบับ) oเหลืออีก12 วินาทีดังนั้น 12 จึงเป็นเลขสามเหลี่ยมที่ถูกตัดทอน งาน งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่น (หรือเทียบเท่า) ที่ใช้จำนวนเต็มและส่งกลับ (หรือใช้วิธีการส่งออกมาตรฐานใด ๆ ) ไม่ว่าจะเป็นตัวเลขเป็นจำนวนสามเหลี่ยมตัดทอน กฎระเบียบ ไม่มีช่องโหว่มาตรฐาน อินพุตเป็นจำนวนเต็มที่ไม่เป็นลบ การตัดไม่สามารถมีความยาวด้านเกินกว่าครึ่งหนึ่งของสามเหลี่ยมเดิม (เช่นการตัดไม่สามารถซ้อนทับกันได้) …
20 code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

7
ช่วงเวลาท้องถิ่นของสตริง
ช่วงเวลาท้องถิ่น ใช้เวลาไม่ว่างเปล่าสตริงs ระยะเวลาในท้องถิ่นของsที่ดัชนีฉันเป็นจำนวนเต็มบวกที่เล็กที่สุดnเช่นที่แต่ละ0 ≤ k <nเรามีs [ผม k +] = s [I-n + K]เมื่อใดก็ตามที่ทั้งสองฝ่ายจะมีการกำหนด อีกวิธีหนึ่งก็คือความยาวน้อยที่สุดของสตริงว่างWดังกล่าวว่าหากการ concatenation WWวางอยู่ติดกับsเพื่อให้สำเนาที่สองของWเริ่มต้นที่ดัชนีฉันของsจากนั้นทั้งสองสตริงเห็นด้วยก็ตามที่พวกเขาซ้อนทับกัน เป็นตัวอย่างลองคำนวณช่วงเวลาท้องถิ่นของs = "abaabbab"ที่ดัชนี (อิง 0) ลองn = 1 : จากนั้นs [2 + 0] ≠ s [2-1 + 0]ดังนั้นตัวเลือกนี้ไม่ถูกต้อง ลองn = 2 : จากนั้นs [2 + 0] = s [2-2 + 0]แต่s [2 + …
20 code-golf  string 

1
สร้าง Matryoshka Dolls ใหม่ของฉัน
พื้นหลัง Matryoshka ตุ๊กตา (หรือรัสเซียรังตุ๊กตา) เป็นชุดของตุ๊กตาที่พอดีภายในของแต่ละอื่น ๆ ฉันบังเอิญผสมตุ๊กตา matryoshka ของฉันและฉันจำไม่ได้ว่าอันไหนเข้าไปข้างใน วัตถุประสงค์ รับรายการของสตริงที่ไม่ซ้ำกันเรียงลำดับพวกเขาเป็นตุ๊กตา matryoshka ซ้อนกัน แต่ละสตริงเป็นตุ๊กตาแต่ละตัวและตุ๊กตาแมทริโดก้าเป็นรายการของสตริง กฎระเบียบ อนุญาตmin(a,b)เป็น minx พจนานุกรมของสตริงaและb. ขอa ⊂ bแสดงว่าที่เป็นย่อยของa bจากนั้น รายการของตุ๊กตาแม่ลูกดกจะต้องเรียงตามพจนานุกรม สตริงaสามารถใส่ลงในสตริงได้bหากa ⊂ b ถ้าa ⊂ bและa ⊂ cจากนั้นaจะเข้าไปข้างในmin(b,c) หากทั้งสองa ⊂ cและb ⊂ cแต่a ⊄ b b ⊄ aแล้วเท่านั้นmin(a,b)จะเข้าไปข้างในc หากทั้งสองa ⊂ cและb ⊂ cและยังa ⊂ bแล้วเท่านั้นจะไปภายในb cนั่นคือความเชื่อโชคลางไปก่อนสารตั้งต้นเพื่อที่ว่า matryoshka …
20 code-golf  string 

27
จัดแนว ASCII Art ตามแนวนอน
งานของคุณคือการยอมรับเป็นอินพุต "ASCII Art" สองรายการและจัดเรียงแต่ละชิ้นของศิลปะถัดจากแนวนอน ตัวอย่างเช่นสมมติว่าคุณมีสองสายและ"abc\ndef" "123\n456"คุณจำเป็นต้องจัดแนวพวกเขาในแนวนอนเพื่อสร้างสตริง"abc123\ndef456"ฉันกำลังเรียกสิ่งนี้ว่า" การจัดตำแหน่งแนวนอน "เพราะในขณะที่อินพุตเมื่อพิมพ์ออกมาจะมีลักษณะดังนี้: abc def และ: 123 456 เอาต์พุตเมื่อพิมพ์จะมีลักษณะดังนี้: abc123 def456 โปรดทราบว่าจะมีการป้อนข้อมูลใดรายการหนึ่งถัดจากอีกรายการหนึ่ง อินพุต อินพุตจะเป็นสตริงและสามารถเป็นอาร์กิวเมนต์สองตัวแยกกันหรือเป็นลำดับของสตริง ตัวละครในศิลปะจะมีรหัสทศนิยมในช่วง 32-126 (รวม) มันเป็นเรื่องปกติที่จะสนับสนุนจำนวนศิลปะโดยพลการให้เข้ามาแทนที่เพียงแค่สองชิ้น คุณสามารถสันนิษฐานได้ว่างานศิลปะแต่ละชิ้นจะมีขนาดเท่ากันและจะมีอย่างน้อยหนึ่งบรรทัด คุณต้องสามารถรองรับศิลปะตัวละครอย่างน้อย 100x100 ตัว เพื่อจัดแนวกับอนุสัญญาบนไซต์ลำดับอาร์กิวเมนต์ไม่สำคัญ ไม่สำคัญว่าศิลปะใดจะอยู่ทางซ้ายหรือขวา เอาท์พุต การส่งออกจะเป็นศิลปะที่สอดคล้องดังกล่าวข้างต้นไม่ว่าจะกลับมาหรือส่งออกไปยัง stdout ช่องว่างต่อท้ายใด ๆ ในตัวเลือก ต้องไม่มีตัวคั่นที่มองเห็นได้ระหว่างศิลปะที่จัดแนว อินพุตและเอาต์พุตศิลปะต้องเป็น\nหรือมีการ\rคั่นสตริง มันเป็นเรื่องเล็กน้อยมากที่จะอนุญาตให้ใช้อาร์เรย์ 2 มิติ ที่ส่งอาจเป็นฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ กรณีทดสอบ: "abc\ndef", "123\n456" -> "abc123\ndef456". "qwertyuiop\n asdfghjkl", "Some other\nTextFiller" …

21
วิธีการพิมพ์รูปแบบด้านล่างในไบต์ที่น้อยที่สุด?
ความท้าทายนี้เป็นแรงบันดาลใจนี้ตอนนี้ลบคำถาม รับจำนวนเต็มบวกNเป็นอินพุตและส่งออกเมทริกซ์ด้วยตัวเลข1 .. N 2ที่ตามรูปแบบด้านล่าง: กรอกข้อมูลในแถวแรกด้วย1 .. Nจากนั้นกรอกแถวสุดท้าย (หมายเลขแถวN ) ด้วย(N + 1) .. 2Nจากนั้นกรอกแถวที่สองด้วย(2N + 1) .. 3Nและดำเนินการต่อไปจนกว่าคุณจะได้กรอกข้อมูลครบถ้วนแถวทั้งหมด รูปแบบผลลัพธ์มีความยืดหยุ่นดังนั้นจึงยอมรับรายการรายการ ฯลฯ N = 1 1 N = 2 1 2 3 4 N = 3 1 2 3 7 8 9 4 5 6 N = 4 1 2 3 …

20
หอไอเฟล: สร้าง "A" ขนาดใหญ่จาก "A" s
สร้างฟังก์ชั่นที่ได้รับหมายเลขของสายทำให้nbigA แถบแนวนอนของbigAต้องอยู่ที่แถวกลางหรือด้านล่างของทั้งสองถ้าnเท่ากัน สมมติว่าเป็นฟอนต์ monospace สำหรับเอาต์พุต เอาต์พุตควรเป็นสตริง (หรือที่คล้ายกันเช่นอาร์เรย์อักขระ) ที่มีการแบ่งบรรทัดที่ชัดเจนเพื่อแยกบรรทัดและมีช่องว่างที่ถูกต้องสำหรับการแพ็ดซ้าย (คุณสามารถถือว่า \ t เป็น 4 ช่องว่าง) อาจมีช่องว่างใด ๆ ทางด้านขวา ตัวอย่าง n = 1 A n = 2 A AAA n = 3 A AAA A A n = 4 A A A AAAAA A A n = 5 A A A AAAAA …

30
สีต่อไป
ท้าทาย Red Orange Yellow Green Blue Indigo Violetพิจารณารุ้งเจ็ดสีแทนด้วยสตริงเป็น งานของคุณคือการสร้างโปรแกรมที่ได้รับหนึ่งในสีเหล่านี้เป็นอินพุตและเอาต์พุตถัดไปตามลำดับสีรุ้ง ซึ่งรวมถึงการทับซ้อนกันViolet -> Red อินพุต สตริงที่มีสีรุ้งหนึ่งสี เอาท์พุต ลำดับสีรุ้งถัดไป กฎระเบียบ ชื่อสีจะต้องตรงตามตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก พวกเขาจะต้องตรงกับกรณีที่รวมอยู่ในโพสต์นี้ อินพุตจะถูกต้องเสมอ พฤติกรรมใด ๆ ที่ได้รับอนุญาตสำหรับการป้อนข้อมูลที่ไม่ถูกต้อง นี่คือรหัสกอล์ฟดังนั้นจำนวนที่สั้นที่สุดของจำนวนไบต์ชนะ! ตัวอย่างอินพุตและเอาต์พุต Input -> Output Red -> Orange Orange -> Yellow Yellow -> Green Green -> Blue Blue -> Indigo Indigo -> Violet Violet -> Red

9
ย้อนกลับคอลัมน์ในขณะที่รักษารูปร่าง
บทนำ สมมติว่าคุณมีรายการของจำนวนเต็ม (หรือวัตถุใด ๆ จริง ๆ แต่ลองติดกับจำนวนเต็มเพื่อความเรียบง่าย) รายการอาจมีความยาวต่างกันและบางรายการอาจว่างเปล่า ลองเขียนรายการในรูปแบบตาราง: [[ 1, 2, 3, 4, 5], [ 6, 7], [ 8, 9, 10, 11], [], [12, 13, 14], [15, 16, 17, 18]] ตารางนี้มี 5 คอลัมน์แนวตั้งที่มีตัวเลข1, 6, 8, 12, 15, 2, 7, 9, 13, 16, 3, 10, 14, 17, และ4, 11, 18 …

21
นับไม้ขีด
คนส่วนใหญ่ที่นี่คุ้นเคยกับการแสดงเซกเมนต์เจ็ดส่วนซึ่งใช้ในการจับคู่ปริศนา ด้านล่างนี้เป็นตัวเลข0ผ่าน9และตัวอักษรaผ่านzยกเว้นk,m,t,v,wเขียนในรูปแบบนี้ _ _ _ _ _ _ _ _ | | | _| _| |_| |_ |_ | |_| |_| |_| | |_ _| | _| |_| | |_| _| _ _ _ _ _ _ _ _ _ |_| |_ | _| |_ |_ | |_ | | …

26
ระบุตัวเลขให้พิมพ์“ ผลรวมรวม”
กำหนดตัวเลขเป็นอินพุตพิมพ์ผลรวมโดยรวม จำนวนรวมคืออะไร? พิจารณาจำนวน13214การป้อนข้อมูล วนผ่านตัวเลขแต่ละตัวเริ่มจากด้านซ้ายเราจะสามารถได้รับผลรวมของมัน 1 หมายถึงดูที่ตัวเลขตัวแรกและเพิ่มลงในผลรวม, sum = 1 3 หมายถึงดูที่ "ตัวเลข 3 ตัวแรก" และเพิ่มลงในผลรวม, sum = 1 + 132 2 หมายถึงดูที่ "ตัวเลข 2 ตัวแรก" และเพิ่มลงในผลรวม, sum = 1 + 132 + 13 1 หมายถึงดูตัวเลขตัวแรกและเพิ่มลงในผลรวม sum = 1 + 132 + 13 + 1 4 หมายถึงดูที่ "ตัวเลข 4 ตัวแรก" และเพิ่มลงในผลรวม, …

20
ค้นหาตัวเลขที่ขาดหายไปใน Fibonacci Sequence Mod K
แรงบันดาลใจจากคำถาม Math.SEนี้ พื้นหลัง ลำดับ Fibonacci (เรียกว่าF) เป็นลำดับที่เริ่มต้น0, 1ดังกล่าวว่าแต่ละหมายเลข ( F(n)) (หลังจากครั้งแรกที่สอง) คือผลรวมของทั้งสองก่อนที่มัน ( F(n) = F(n-1) + F(n-2)) Fibonacci Sequence mod K (เรียกว่าM) เป็นลำดับของหมายเลข Fibonacci mod mod K ( M(n) = F(n) % K) สามารถแสดงให้เห็นว่า Fibonacci Sequence mod K เป็นวงจรสำหรับ K ทั้งหมดเนื่องจากแต่ละค่าถูกกำหนดโดยคู่ก่อนหน้าและมี K 2คู่ที่เป็นไปได้ของจำนวนเต็มไม่เป็นลบทั้งคู่น้อยกว่า K เนื่องจากลำดับ Fibonacci mod K เป็นวัฏจักรหลังจากคำศัพท์ซ้ำคู่แรกของจำนวนที่ไม่ปรากฏใน …

10
ผู้ปกครองกระจัดกระจายน้อยที่สุด
ไม้บรรทัดมาตรฐานที่มีความยาวnมีเครื่องหมายระยะทางที่ตำแหน่ง 0, 1, ... , n (ในหน่วยใดก็ตาม) ไม้บรรทัดเบาบางมีส่วนย่อยของเครื่องหมายเหล่านั้น ไม้บรรทัดสามารถวัดระยะทางkถ้ามีเครื่องหมายที่ตำแหน่งPและQกับP - Q = k ความท้าทาย ป.ร. ให้ไว้เป็นจำนวนเต็มบวกnผลผลิตจำนวนขั้นต่ำของเครื่องหมายที่จำเป็นในการเป็นผู้ปกครองเบาบางของความยาวnเพื่อที่จะสามารถวัดระยะทางทั้งหมด 1, 2, ... , n นี่คือOEIS A046693 ตัวอย่างเช่นสำหรับอินพุต 6 เอาต์พุตคือ 4 คือไม้บรรทัดที่มีเครื่องหมายที่ 0, 1, 4, 6 ทำงานเป็น 1 works0 = 1, 6−4 = 2, 4−1 = 3, 4−0 = 4, 6−1 = 5, และ …

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