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

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

25
พนักงานโรงงาน
ท้าทาย คนงานในโรงงานมักจะทำงานหนักมาก อย่างไรก็ตามงานของพวกเขาตอนนี้ถูกแทนที่ด้วยเครื่องทั่วไป คุณต้องเขียนโปรแกรมที่ใช้ตัวเลขเป็นอินพุต มันจะพิมพ์โรงงาน 10 คน 10 ครั้ง ทุกครั้งที่คนงานแต่ละคนมี1/inputโอกาสถูกไล่ออกและถูกแทนที่ด้วยเครื่องจักร อินพุต จำนวนเต็มที่มาจาก STDIN หรือการเรียกใช้ฟังก์ชัน เอาท์พุต 10 กรณีของโรงงานแต่ละคนมักจะถูกไล่ออก รูปแบบผลลัพธ์ - วิธีพิมพ์จากโรงงาน โรงงานมีลักษณะเช่นนี้: |0000000000| หรือ |0000011001| ท่อหมายถึงผนังที่ 0 หมายถึงผู้ปฏิบัติงานและแสดงให้เห็นถึง 1 |0000000000|เครื่องเพื่อให้พิมพ์เป็นครั้งแรกของโรงงานจะเป็น ตัวอย่าง อินพุต: 10 เอาท์พุท: |0000000000| //always start off with this |0000000010| //a 1/10 chance means that this worker lost his job …

1
Advent Challenge 1: ช่วยซานต้าปลดล็อกห้องนิรภัยของเขาในปัจจุบัน!
ถัดไป >> คำหลักที่สื่อความหมาย (สำหรับการค้นหา): สร้างสอง Matrices Equivalent, Overlap, Array, Find ท้าทาย ซานต้ามีประวัติของเอลฟ์ที่ขโมยของขวัญจากห้องนิรภัยของเขาในอดีตดังนั้นในปีนี้เขาได้ออกแบบกุญแจที่ยากต่อการถอดรหัส น่าเสียดายที่เขาสูญเสียชุดค่าผสมและเขาไม่สามารถหาวิธีเปิดได้! โชคดีที่เขาจ้างคุณให้เขียนโปรแกรมเพื่อค้นหาชุดค่าผสม ไม่จำเป็นต้องสั้นที่สุด แต่เขาต้องการค้นหาให้เร็วที่สุด! เขามีตารางงานที่เข้มงวดมากและเขาไม่สามารถรอได้นานมาก คะแนนของคุณจะเป็นจำนวนรันไทม์ทั้งหมดของโปรแกรมของคุณคูณด้วยจำนวนขั้นตอนที่โปรแกรมของคุณแสดงผลสำหรับอินพุตการให้คะแนน คะแนนต่ำสุดชนะ ข้อมูลจำเพาะ ล็อคเป็นเมทริกซ์จตุรัส 1s และ 0s มันถูกตั้งค่าเป็นการจัดเรียงแบบสุ่มของ 1s และ 0s และต้องถูกตั้งค่าเป็นรหัสที่ระบุ โชคดีที่ซานต้าจดจำรหัสที่ต้องการได้ มีไม่กี่ขั้นตอนที่เขาสามารถทำได้ แต่ละขั้นตอนสามารถดำเนินการกับเมทริกซ์ย่อยที่ต่อเนื่องกัน (นั่นคือคุณต้องเลือกเมทริกซ์ย่อยที่ล้อมรอบทั้งหมดด้วยมุมบนซ้ายและขวาล่าง) (อาจเป็นเมทริกซ์ย่อยที่ไม่ใช่สแควร์): หมุนไปทางขวา 90 องศา * หมุนซ้าย 90 องศา * หมุน 180 องศา วนรอบnองค์ประกอบแต่ละแถวทางซ้ายหรือขวา (แรป) วนmองค์ประกอบแต่ละคอลัมน์ขึ้นหรือลง (wraps) พลิกแนวนอน …

12
ลำดับแหวนโอลิมปิก
ท้าทาย: รับจำนวนเต็มดัชนีnออกรายการn'th ในลำดับนี้หรือส่งออกลำดับถึงและรวมถึงดัชนีn: 25,25,7,28,29,20,21,22,23,14,35,26,7,28,29,20,16,29,12,15,28,21,14,17,30,13,16,29,12,15,28,21,10,6,12,18,15,11,7,13,19,17,13,9,15,21,18,14,10,16,22,19,15,11,17,23,20,16,12,18,24,21,17,13,19,25,23,19,15,21,27,24,20,16,22,28,25,21,17,23,29,16,13,9,15,21,18,14,10,16,22,20,16,12,18,24,21,17,13,19 ลำดับนี้ทำงานอย่างไร หมายเหตุ: ในคำอธิบายนี้ดัชนีnจะมีดัชนี1 ดัชนี ใส่ตัวเลขที่1ผ่านxสองเส้นของความยาวn*6 - 1ที่xขึ้นอยู่กับการย้ำในปัจจุบันและความยาวของตัวเลขที่ใช้แล้วสรุปตัวเลขของn'รี th / ขวาสุดแหวนโอลิมปิกของทั้งสองสาย หมายเลขแรกในลำดับจะถูกคำนวณดังนี้: The length of the lines are 5 (because 1*6 - 1 = 5): 12345 67891(0) Then leave the digits in an Olympic Rings pattern: 1 3 5 7 9 And sum them: 1+3+5+7+9 = 25 …

23
ลำดับเรขาคณิตน้อยกว่า
Haskellมีคุณสมบัติที่ประณีต (- มอง) ซึ่งคุณสามารถให้ตัวเลขสามตัวและสามารถอนุมานลำดับเลขคณิตจากพวกเขา ยกตัวอย่างเช่นเทียบเท่ากับ[1, 3..27][1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27] มันยอดเยี่ยมและทั้งหมดยกเว้นลำดับเลขคณิตค่อนข้าง จำกัด นอกจากนี้pfft การคูณของมันอยู่ที่ไหน มันจะไม่เย็นถ้ามันไม่ได้ลำดับเรขาคณิตเช่น[1, 3..27]กลับมา[1, 3, 9, 27]? ท้าทาย เขียนโปรแกรม / ฟังก์ชั่นที่ใช้เวลาสามจำนวนเต็มบวก, ขและคและผลที่xเป็นจำนวนเต็มยิ่งใหญ่ที่สุด≤ คที่สามารถแสดงเป็นที่nเป็นจำนวนเต็มบวก[a, b, b × (b ÷ a), b × (b ÷ a)2, ..., x]b × (b ÷ …

13
มันเป็น Pascal Prime หรือไม่?
เป็นที่ทราบกันดีว่าช่วงเวลาแปลก ๆ จะปรากฏในรูปสามเหลี่ยมของ Pascal สองครั้งอย่างแน่นอน อย่างไรก็ตามตัวเลขทั้งหมดที่ปรากฏในรูปสามเหลี่ยมของ Pascal นั้นไม่ใช่ตัวเลขทั้งหมดเท่านั้น เราจะเรียกตัวเลขเหล่านี้ Pascal primes Pascal primes เป็นตัวเลขประกอบที่ปรากฏขึ้นเป็นสองเท่าในรูปสามเหลี่ยมของ Pascal ช่วงเวลาไม่กี่ปาสกาลแรกคือ 4, 8, 9, 12, 14, 16, 18, ... ความท้าทายของคุณคือการใช้จำนวนเต็มบวกnเป็นอินพุตและเอาต์พุตจริงหรือเท็จขึ้นอยู่กับว่าnเป็น Pascal prime หรือไม่ นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดชนะ!

2
กำแพงโล่
ประวัติความเป็นมา กำแพงโล่เป็นรูปแบบสงครามทางยุทธวิธีที่ย้อนกลับไปอย่างน้อย 2500 ปีก่อนคริสตกาล มันประกอบไปด้วยนักรบที่ซ้อนทับโล่กับเพื่อน ๆ ของพวกเขาเพื่อสร้าง 'กำแพง' ความดึงดูดของชั้นเชิงนั้นมาจากความจริงที่ว่าแม้แต่นักรบไร้ฝีมือที่สุดก็สามารถต่อสู้ในกำแพงตราบเท่าที่พวกเขามีเกราะและอาวุธ เนื่องจากอยู่ใกล้กับกำแพงจึงมีพื้นที่เล็ก ๆ น้อย ๆ ให้ย้ายไปรอบ ๆ และการต่อสู้มักจะกลายเป็นการแข่งขันที่ต่อสู้กับอาวุธมีคม ความท้าทาย งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่กำหนดให้สองอาร์เรย์ / รายการ / เวกเตอร์ของนักรบเป็นตัวตัดสินผลลัพธ์ของการต่อสู้ รายการจะเป็นตัวแทนของกำแพงบรรทัดเดียวและพวกเขาจะทำตามสัญกรณ์เฉพาะ ไวกิ้ง: นักรบนอร์ดิกมีแรงขับที่ดุเดือดในการต่อสู้ ในช่วงปลายศตวรรษที่ 8 จนถึงกลางศตวรรษที่ 11 ชาวไวกิ้งชาวเดนมาร์กได้บุกเข้ายึดอาณาจักรของสหราชอาณาจักรเพื่อค้นหาความร่ำรวยและพื้นที่เพาะปลูก สำหรับจุดประสงค์ของการท้าทายเหล่านี้คือนักรบของไวกิ้ง: อาร์ลJ: มักพบว่านำคนของเขาออกมาจากกลางกำแพง Jarls เป็นผู้นำของกลุ่มไวกิ้ง รับ 15 ดาเมจในการตายและสร้างความเสียหายได้ 2 ดาเมจต่อรอบ ผู้Bจู่โจม: ถึงแม้ว่าจินตนาการจะทำให้ภาพลักษณ์ของผู้บ้าบิ่นบิดเบี้ยวอย่างมากนักรบเหล่านี้ก็รู้ดีว่าการต่อสู้ในสภาพที่ดุเดือดเหมือนมึนงงไม่มีการป้องกันใด ๆ นอกเหนือจากโล่ รับ 6 ดาเมจในการตายและสร้างความเสียหาย 3 ดาเมจต่อรอบ Chieftain: …

2
Regex: จับคู่ซีรี่ส์ที่คุ้มค่า
บทนำ ฉันไม่เห็นความท้าทายของ regex มากมายในที่นี้ดังนั้นฉันจึงขอเสนอวิธีง่าย ๆ ที่หลอกลวงซึ่งสามารถทำได้หลายวิธีโดยใช้รสชาติที่หลากหลายของ regex ฉันหวังว่ามันจะมอบความสนุกให้กับผู้ที่ชื่นชอบการเล่นกอล์ฟ regex ท้าทาย ความท้าทายคือการจับคู่สิ่งที่ฉันได้ขนานนามอย่างซีรี่ส์ "คุ้มทุน" อย่างหลวม ๆ : ชุดของตัวละครที่แตกต่างกันจำนวนเท่ากัน นี่คือตัวอย่างที่อธิบายได้ดีที่สุด การจับคู่: aaabbbccc xyz iillppddff ggggggoooooollllllffffff abc banana ไม่ตรงกัน: aabc xxxyyzzz iilllpppddff ggggggoooooollllllfff aaaaaabbbccc aaabbbc abbaa aabbbc ที่จะพูดคุยเราต้องการเพื่อให้ตรงกับเรื่องของรูปแบบ ( สำหรับรายชื่อใด ๆ ของตัวละครเพื่อที่ทั้งหมดc1)n(c2)n(c3)n...(ck)nc1ckci != ci+1i, k > 1, and n > 0. ชี้แจง: อินพุตจะไม่ว่างเปล่า อักขระอาจซ้ำตัวเองในภายหลังในสตริง …

7
โรงแรมไบนารีของ Hilbert
ในการท้าทายนี้คุณจะถูกขอให้ใช้งานฟังก์ชั่นใด ๆ (หรือโปรแกรมเต็มรูปแบบ) ที่ตอบสนองสองคุณสมบัติ คุณสมบัติเหล่านั้นคือ: ฟังก์ชั่นของคุณจะต้องเป็นฟังก์ชั่นการฉีด (ย้อนกลับ) จากชื่อพหุนามที่มีค่าสัมประสิทธิ์จำนวนเต็มไม่เป็นลบถึงจำนวนเต็มไม่เป็นลบ ซึ่งหมายความว่าไม่มีอินพุตที่ไม่เท่ากันสองตัวที่สามารถแมปกับเอาต์พุตที่เท่ากัน ฟังก์ชั่นของคุณจะต้องรักษาจำนวน "บนบิต" ทั้งหมดจากอินพุตไปยังเอาต์พุต นี่หมายความว่าถ้าคุณนับ 1 บิตของสัมประสิทธิ์ของพหุนามแต่ละผลรวมของพวกเขาควรจะเท่ากับจำนวน 1 บิตในการแทนเลขฐานสองของเอาต์พุต ตัวอย่างเช่น9อยู่1001ในไบนารีดังนั้นจึงมี 2 1บิต IO พหุนามจำนวนเต็มที่ไม่เป็นลบจะเหมือนกับรายการอนันต์ของจำนวนเต็มที่ไม่เป็นลบเช่นนั้นหลังจากจุดใดจุดหนึ่งจำนวนเต็มทั้งหมดจะเป็นศูนย์ ดังนั้นชื่อพหุนามอาจถูกแทนด้วยรายการอนันต์ (แม้ว่าอาจไม่เป็นที่พึงปรารถนา) หรือโดยรายการ จำกัด ด้วยค่าศูนย์โดยนัยหลังจากสิ้นสุดรายการ ความแตกต่างที่สำคัญระหว่างชื่อพหุนามกับรายการ จำกัด คือการเพิ่มศูนย์ไปยังจุดสิ้นสุดของรายการจะเปลี่ยนรายการ: ในขณะที่การเพิ่มศูนย์ถึงจุดสิ้นสุดของพหุนามจะไม่เปลี่ยนค่าของมัน: ดังนั้นหากฟังก์ชั่นของคุณรับรายการ จำกัด ซึ่งแทนพหุนามเป็นอินพุตการเพิ่มศูนย์จะต้องไม่เปลี่ยนผลลัพธ์ เมื่อแสดงชื่อพหุนามเป็นรายการคุณอาจเป็นตัวแทนพวกนั้นด้วยรายการแรกหรือรายการสุดท้ายที่แทนคำคงที่ ตัวอย่างเช่นคุณอาจมีความเป็นไปได้อย่างใดอย่างหนึ่งต่อไปนี้: ในกรณีแรกการเพิ่มค่าศูนย์ที่ส่วนท้ายของรายการไม่ควรเปลี่ยนผลลัพธ์ ในกรณีที่สองให้เพิ่มศูนย์ลงในด้านหน้าของรายการไม่ควรเปลี่ยนผลลัพธ์ แน่นอนว่าถ้าภาษาของคุณรองรับพหุนามคุณอาจใช้เป็นอินพุต เอาต์พุตควรเป็นเอาต์พุตจำนวนเต็มที่ไม่เป็นลบผ่านวิธีมาตรฐานใด ๆ นี่คือcode-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์น้อยกว่าจะดีกว่า

30
ค้นหาจำนวนเต็มที่แตกต่างกันจำนวนมากที่สุดซึ่งรวมถึง n
งาน ได้รับการป้อนข้อมูลเป็นจำนวนเต็มบวกn(ตั้งแต่ 1 ถึงขีด จำกัด ของภาษาของคุณอย่างรวม) nผลตอบแทนหรือการส่งออกจำนวนสูงสุดของจำนวนเต็มบวกชัดเจนว่าจำนวนเงินที่จะ กรณีทดสอบ อนุญาตให้fกำหนดฟังก์ชั่นที่ถูกต้องตามงาน: ลำดับสำหรับfเริ่มต้นที่ 1: 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, ... ในฐานะที่เป็นกรณีทดสอบขนาดใหญ่: >>> f(1000000000) // Might not be feasible with brute-forcers 44720 รหัสทดสอบ สำหรับกรณีทดสอบใด ๆ …

20
สถาปัตยกรรมสวน - สไตล์ ASCII
เรามีสวนขนาด 10x10 เมตรที่อยู่ด้านนอกบ้านของเรา เราต้องการปลูกหญ้าและทำระเบียง เราได้ตัดสินใจว่าจะแบ่งสวน แต่เรายังไม่ได้ตัดสินใจอัตราส่วนระหว่างปริมาณของหญ้า VS ระเบียง เราต้องการความช่วยเหลือในการสร้างภาพและ ASCII-art เป็นวิธีที่ดีที่สุดในการทำเช่นนั้น ท้าทาย: ใช้จำนวนเต็มในช่วงที่รวม[0, 100] (หรือทศนิยมแบบเลือกได้ [0, 1]) แทนจำนวนสวนที่ควรเป็นระเบียง หนึ่งตารางเมตรของเทอเรสจะแสดงโดยทั้งเส้นประหรือบาร์- หนึ่งตารางเมตรของหญ้าจะแสดงโดยเครื่องหมายกัญชา|# หากจำนวนระเบียงน้อยกว่าหรือเท่ากับ 50% สวนควรถูกปกคลุมด้วยแท่งโดยเริ่มที่มุมล่างซ้ายและเติมในแนวตั้งจากนั้นเป็นแนวนอน หากปริมาณระเบียงมากกว่า 50% เราต้องการให้พื้นระเบียงเป็นทางอื่น (ขีดคั่นแทนแท่ง) และเริ่มที่มุมล่างซ้ายและเติมในแนวนอนจากนั้นในแนวตั้ง ตัวอย่าง: N = 25% ||######## ||######## ||######## ||######## ||######## |||####### |||####### |||####### |||####### |||####### N = 75% ########## ########## -----##### ---------- ---------- …

8
เอาต์พุตต้นทางทีละบิต
เขียนโปรแกรมหรือฟังก์ชั่นที่ไม่ว่างเปล่าที่เมื่อเรียกว่าเอาท์พุทค่าเดียว, 1 หรือ 0, และเมื่อเรียกหลาย ๆ ครั้ง, หมายเลขเอาท์พุตจะสร้างการแสดงเลขฐานสองของซอร์สโค้ดของโปรแกรมของคุณ (ในหน้ารหัสเดียวกัน / ตีความ) ตัวอย่างเช่นหากซอร์สโค้ดของคุณคือabc(ใน ASCII) ผลลัพธ์จะเป็น: 1st call: 0 // ASCII letter 'a' 2nd call: 1 3rd call: 1 4th call: 0 5th call: 0 6th call: 0 7th call: 0 8th call: 1 9th call: 0 // ASCII letter 'b' 10th …

9
ตอบอัตราส่วนโหวต
คำถามนี้ได้รับแรงบันดาลใจจากความจริงที่ว่าฉันรักที่จะเห็นคำถามที่มีคะแนนเท่ากันและคำตอบนับ ดังนั้นนี่เป็นความท้าทายแบบstack-exchange-apiสำหรับ y'all: ท้าทาย: ให้codegolf.stackexchangeรหัสคำถามเอาท์พุทอัตราส่วนระหว่างคะแนนโหวตของคำถามและจำนวนคำตอบ (เช่นvotes/answers) ข้อมูลจำเพาะ: คุณสามารถเข้าถึงอินเทอร์เน็ต แต่คุณสามารถเข้าถึงได้stackexchange.comและโดเมนย่อยต่างๆเท่านั้น คุณไม่สามารถใช้เครื่องมือย่อ URL คุณสามารถรับอินพุตและให้เอาต์พุตในรูปแบบมาตรฐานใด ๆ คุณต้องส่งออกอัตราส่วนเป็นตัวเลขทศนิยมในฐาน 10 โดยมีตัวเลขอย่างน้อย 4 {ถูกต้อง} หลังจากทศนิยม (ศูนย์อาจถูกตัดทอน) หากคำถามยังไม่ได้ตอบโปรแกรมของคุณอาจมีพฤติกรรมที่ไม่ได้กำหนด คุณควรใช้scoreคำถามเป็นเสียงนับดูที่นี่ นี่คือcode-golfอย่างน้อยไบต์ในแต่ละภาษาที่ชนะสำหรับภาษานั้น ๆ โดยรวมไบต์อย่างน้อยก็จะชนะโดยรวม นี่คือตัวอย่างโปรแกรมในPython 3 + requests: import requests import json id = input("id> ") url = "https://api.stackexchange.com/2.2/questions/" + id + "?site=codegolf" content = requests.get(url).text question = json.loads(content)["items"][0] …

9
ฉันมีกี่บท
พระคัมภีร์เป็นหนึ่งในหนังสือที่มีอิทธิพลมากที่สุดที่เคยเขียนและอ้างกันทั่วไปว่าเป็นหนังสือที่ขายดีที่สุดของเวลาทั้งหมด มันถูกเขียนขึ้นโดยนักเขียนที่แตกต่างกันประมาณ 40 คนในเวลาหลายร้อยปีก่อนที่จะรวบรวมเป็นรูปแบบปัจจุบัน แต่สิ่งที่น่าสนใจเกี่ยวกับพระคัมภีร์คือวิธีการแบ่งมัน มันถูกแบ่งออกเป็น 2 Testaments ที่แตกต่างกันซึ่งจะแบ่งออกเป็น 66 เล่มเล็ก ๆ ซึ่งแต่ละคนจะแบ่งออกเป็นบทเล็ก ๆ ซึ่งแต่ละคนจะแยกออกเป็นแต่ละบท ฉันคิดว่ามันเป็นความท้าทายที่สนุกที่จะพยายามเข้ารหัสจำนวนบทในหนังสือแต่ละเล่มด้วยรหัสที่สั้นที่สุดเท่าที่จะเป็นไปได้ ดังนั้นสำหรับความท้าทายวันนี้คุณจะต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้เวลาหนึ่งของหนังสือที่เป็น input และผลจำนวนบทในหนังสือว่าตามที่The King James Version คุณสามารถใช้ IO ในรูปแบบที่เหมาะสมเช่นการอ่าน / การเขียน STDIN / STDOUT หรือไฟล์อาร์กิวเมนต์ของฟังก์ชัน / ค่าส่งคืนการแจ้งเตือนผู้ใช้และอื่น ๆ ทั้งหมดได้รับอนุญาต ข้อมูลจะเป็นหนึ่งใน 66 เล่มของพระคัมภีร์เสมอและเป็นตัวพิมพ์เล็กเท่านั้น ซึ่งหมายความว่าหากคุณได้รับการป้อนข้อมูลอื่น ๆ พฤติกรรมที่ไม่ได้กำหนดจะได้รับอนุญาต เนื่องจากมีเพียงอินพุตและเอาต์พุตที่เป็นไปได้เพียง 66 รายการเท่านั้นดังนั้นจึงมีให้ที่นี่ตามหน้าวิกิพีเดียในบทไบเบิลใน The King James Version : genesis …

20
ค้นหาเข็มในกองหญ้า (โจร)
นี่เป็นส่วนหนึ่งของการท้าทายของตำรวจและโจร ไปที่นี่เพื่อส่วนตำรวจ ความท้าทายของโจร คำตอบของตำรวจสามารถถอดรหัสได้โดยการลบชุดอักขระใด ๆ ออกจากโปรแกรม Haystack เพื่อให้ได้ผลลัพธ์Needleแทนที่จะเป็นHaystack(ในขณะที่ยังคงเป็นการส่งที่ถูกต้องในภาษาเดียวกัน) คุณไม่จำเป็นต้องค้นหาวิธีแก้ไขปัญหาแบบเดียวกันกับที่ตำรวจต้องการตราบใดที่คุณใช้งานได้ตามข้อ จำกัด ข้างต้น หากคุณจัดการสิ่งนี้โพสต์คำตอบด้วยวิธีแก้ปัญหาเชื่อมโยงไปยังคำตอบของตำรวจและแสดงความคิดเห็นในคำตอบของตำรวจที่เชื่อมโยงกลับไปยังของคุณ โจรที่ร้าวคำตอบตำรวจที่สุดจะชนะ ความสัมพันธ์จะถูกทำลายโดยผลรวมของขนาดของคำตอบตำรวจแตก (ในความโปรดปรานของโจรที่แตกส่งอีกต่อไป) คำตอบตำรวจแต่ละคนสามารถถอดรหัสได้เพียงครั้งเดียวเท่านั้นและแน่นอนว่าคุณไม่ได้รับอนุญาตให้ถอดรหัสคำตอบของคุณเอง หากคำตอบของตำรวจกลายเป็นโมฆะก่อนหรือหลังถูกแคร็กมันจะไม่ถูกนับเข้ากับคะแนนของนักปล้น ตัวอย่าง นี่คือตัวอย่างง่ายๆในภาษาต่างๆ: Ruby Haystack: puts 1>0?"Haystack":"Needle" Delete: XXXXXXXXXXXXXXX Needle: puts "Needle" Python 2 Haystack: print "kcatsyaHeldeeN"[-7::-1] Delete: XXXXXXXX XX Needle: print "eldeeN"[::-1] โปรดทราบว่าชุดย่อยของอักขระที่ลบออกไม่จำเป็นต้องต่อเนื่องกัน

7
เส้นทาง hypercube ที่ยาวที่สุด
ท้าทาย คุณจะได้รับสองบิตบิตที่แตกต่างกันของความยาวเดียวกัน (ตัวอย่างเช่น000และ111.) เป้าหมายของคุณคือค้นหาเส้นทางจากที่หนึ่งไปอีกที่หนึ่งที่: ในแต่ละขั้นตอนที่คุณเปลี่ยนเพียงหนึ่งบิต (คุณสามารถไปจาก000การใด ๆ001, 010, 100) คุณไม่สามารถเยี่ยมชมสตริงบิตเดียวกันสองครั้ง เส้นทางยาวที่สุดเท่าที่จะเป็นไปได้ภายใต้ข้อ จำกัด เหล่านี้ ยกตัวอย่างเช่นที่เกิดจาก000การ111ที่เราสามารถใช้เส้นทาง 000, 001, 011, 010, 110, 100, 101, 111 ซึ่งเข้าชมทั้งหมด 8 บิตความยาว 3 ดังนั้นมันจะต้องเป็นไปได้ที่ยาวที่สุด กฎระเบียบ ช่องโหว่มาตรฐานใช้ คุณสามารถรับอินพุตเป็นสองสตริงของศูนย์และหนึ่งหรือเป็นสองอาร์เรย์ของศูนย์และคนหรือเป็นสองอาร์เรย์ของค่าบูลีน คุณไม่สามารถรับอินพุตเป็นจำนวนเต็มสองจำนวนที่มีการแทนค่าไบนารี่ขวา (การเขียน000และ111เป็น0และ7ไม่ถูกต้อง) หากคุณต้องการคุณอาจใช้ความยาวของสตริงบิตเป็นอินพุต โปรแกรมของคุณได้รับอนุญาตให้ส่งออกเส้นทางโดยการพิมพ์บิตสตริงที่เข้าเยี่ยมชมทีละครั้งหรือโดยการส่งกลับอาร์เรย์ของบิตสตริงที่เข้าชม (แต่ละรูปแบบเดียวกับอินพุต) ผลลัพธ์ของคุณควรมีจุดเริ่มต้นและจุดสิ้นสุดของเส้นทาง (ซึ่งเป็นอินพุตของคุณ) นี่คือโค้ดกอล์ฟซึ่งเป็นรหัสที่สั้นที่สุดในหน่วยไบต์ ตัวอย่าง 0 1 -> 0, 1 10 01 -> 10, 00, 01 …

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