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

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

7
นี่เป็นแบบย่อยหรือไม่?
นี่เป็นลักษณะทั่วไปแบบสองมิติของความท้าทายนี้ สำหรับวัตถุประสงค์ของเราหนึ่งเมทริกซ์ (หรือ 2D อาร์เรย์) ถือว่าเป็นsubmatrixอีกเมทริกซ์Bถ้าสามารถรับได้โดยสมบูรณ์ลบจำนวนแถวและคอลัมน์จากB (หมายเหตุ: บางแหล่งมีคำจำกัดความที่แตกต่างกัน / มากกว่า) นี่คือตัวอย่าง: A = [1 4 B = [1 2 3 4 5 6 2 1] 6 5 4 3 2 1 2 1 2 1 2 1 9 1 8 2 7 6] เราสามารถลบคอลัมน์ 2, 3, 5, 6 และแถว 2, …

4
Count Mills in Nine คนมอร์ริส
บทนำ Morris ของ Nine Mens (หรือเรียกอีกอย่างว่า Mills) เป็นเกมกระดานสำหรับผู้เล่นสองคนซึ่งเล่นบนกระดานต่อไปนี้ (ภาพที่นำมาจากหน้า Wikipedia-link): ผู้เล่นแต่ละคนมี 9 คนสีดำและสีขาว กฎที่เป็นรูปธรรมนั้นไม่สำคัญสำหรับความท้าทายนี้ แต่ลองดูที่หน้า Wikipediaถ้าคุณสนใจ ความท้าทาย กำหนดตารางเป็น input ซึ่งหมายถึงการ boardstate บางอย่างที่ส่งออกนับโรงงานทั้งหมดที่มีm ชายสามคนที่มีสีเดียวกันจะก่อตัวเป็นมิลล์เมื่อพวกเขาอยู่ในแนวตรงของจุดเชื่อมต่อ ถึงไม่ใช่โรงสีเนื่องจากผู้ชายมีสีต่างกัน นอกจากนี้เพื่อจะได้รูปแบบโรงงานตั้งแต่สามจุดจะต้องมีการเชื่อมต่อ บอร์ดในภาพด้านบนมีตัวอย่างสองลัอ หนึ่งจากไปและจากไป0<=m<=8b2f2d2d5f2f6e3e5 อินพุต บอร์ดแสดงเป็นกริด 2D ที่มี 24 คะแนนซึ่งเชื่อมต่อตามที่แสดงในภาพตัวอย่างด้านบน ตัวอย่างใช้ตัวอักษรจากa-gสำหรับคอลัมน์และตัวเลขจาก1-7สำหรับแถว แต่คุณสามารถเลือกรูปแบบการป้อนข้อมูลที่สมเหตุสมผลตราบใดที่มันจับคู่ 24 พิกัดที่ไม่ซ้ำกันกับสถานะใดสถานะหนึ่งต่อไปนี้: ว่างเปล่า ถ่ายโดยคนดำ ถ่ายโดยสีขาว การกลับใจที่เป็นรูปธรรมนั้นขึ้นอยู่กับคุณว่าคุณไม่ได้ถูก จำกัด ให้เป็น "b" หรือ "w" สำหรับสี นอกจากนี้ข้อมูลที่คุณป้อนอาจไม่มีข้อมูลเพิ่มเติมใด ๆ หมายเหตุเพิ่มเติม …

30
คำนวณผลรวมของ ILD
การป้อนข้อมูล: จำนวนเต็ม เอาท์พุท: ผลรวมของอินพุตเอง + ความยาวของอินพุต + แต่ละหลักของอินพุต nr + nr-length + {sum of digits} = output ตัวอย่าง: อินพุต: 99 เอาต์พุต: 99(nr) + 2(ความยาว nr) + (9 + 9)(หลัก) →119 อินพุต: 123 เอาต์พุต: 123 + 3 + (1 + 2 + 3)→132 กฏท้าทาย: อินพุตยังสามารถมีอินพุตเชิงลบซึ่งได้รับการแก้ไขพิเศษ -ลบเครื่องหมาย / นอกจากนี้ยังมีความยาวและเป็นส่วนหนึ่งของครั้งแรก+1 ตัวอย่างเช่น: digit อินพุต: …

14
ค้นหาสี่เหลี่ยมสูงสุด 1s
พื้นหลัง ฉันต้องการซื้อที่ดินและสร้างบ้านของฉันบนมัน บ้านของฉันควรเป็นรูปสี่เหลี่ยมผืนผ้าและมีขนาดใหญ่ที่สุด อย่างไรก็ตามพล็อตที่มีอยู่นั้นมีพื้นที่หินมากมายที่ฉันไม่สามารถสร้างได้และฉันมีปัญหากับการสร้างบ้านที่มีศักยภาพบนที่ดิน ฉันต้องการให้คุณเขียนโปรแกรมที่วิเคราะห์แปลงให้ฉัน อินพุตและเอาต์พุต ข้อมูลที่คุณป้อนเป็นบิต 2 มิติรูปสี่เหลี่ยมผืนผ้าขนาดอย่างน้อย 1 × 1 ในรูปแบบที่เหมาะสม อาร์เรย์แสดงให้เห็นถึงที่ดิน 1มีพื้นที่ "ดี" ที่ฉันสามารถสร้างบ้านของฉันและพื้นที่0เป็น "หิน" ที่ไม่สามารถสร้างบ้านได้ เอาต์พุตของคุณจะต้องเป็นพื้นที่สูงสุดของสี่เหลี่ยมทึบของ1s ในอาร์เรย์อินพุต มันหมายถึงพื้นที่ของบ้านที่ใหญ่ที่สุดที่ฉันสามารถสร้างบนที่ดิน โปรดทราบว่าถ้าไม่มี1s 0ในการป้อนข้อมูลแล้วส่งออกเป็น ตัวอย่าง พิจารณาอินพุต 101 011 111 สี่เหลี่ยมที่ใหญ่ที่สุดคือสี่เหลี่ยม12 × 2 ที่มุมขวาล่าง 4ซึ่งหมายความว่าการส่งออกที่ถูกต้องคือ กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ 0 -> 0 1 -> 1 00 00 -> 0 01 10 …


1
แยกจำนวนเต็มของฉัน
บทนำ ในสาขาคณิตศาสตร์ที่รู้จักกันเป็นโครงสร้างมีสิ่งที่เรียกว่าหลักการแยก โดยสังเขปคุณมีชุดXและชุดย่อยของXซึ่งเราสามารถคิดว่าเป็นคุณสมบัติ ระบบจะถูกแยกออกจากกันอย่างดีหากสามารถแยกแยะความแตกต่างระหว่างรายการทั้งหมดของXคุณสมบัติของพวกเขา สัจพจน์ที่แยกกันทำให้ความคิดนี้เป็นทางการ ในความท้าทายนี้งานของคุณคือการตรวจสอบสัจพจน์สามแยกที่กำหนดXและรายการของคุณสมบัติ อินพุต อินพุตของคุณเป็นจำนวนเต็มn ≥ 2และรายการTของจำนวนเต็ม จำนวนเต็มในถูกดึงมาจากT X = [0, 1, ..., n-1]รายการในTอาจว่างเปล่าและไม่เรียงลำดับ แต่ไม่มีรายการที่ซ้ำกัน เอาท์พุต เอาต์พุตของคุณคือหนึ่งในสี่สายกำหนดโดยหลักการแยกสามอันแต่ละอันแข็งแกร่งกว่าอันสุดท้าย มีสัจพจน์อื่น ๆ แต่เรายึดติดกับสิ่งเหล่านี้เพื่อความเรียบง่าย สมมติว่าสำหรับทั้งหมดที่แตกต่างxและyในXมีรายการTที่มีหนึ่งในนั้น แล้วXและTตอบสนองความจริง T0 สมมติว่าทุกที่แตกต่างกันxและyในการXมีอยู่สองรายการในTหนึ่งซึ่งมีxแต่ไม่ได้yและอื่น ๆ ที่มีแต่ไม่y xแล้วXและTตอบสนองความจริง T1 สมมติว่าทั้งสองรายการด้านบนไม่มีองค์ประกอบที่เหมือนกัน แล้วXและTตอบสนองความจริง T2 การส่งออกของคุณเป็นหนึ่งT2, T1, T0หรือTSขึ้นอยู่กับเงื่อนไขดังกล่าวข้างต้นถือ ( TSหมายถึงไม่มีของพวกเขาทำ) โปรดทราบว่า T2 นั้นแข็งแกร่งกว่า T1 ซึ่งแข็งแกร่งกว่า T0 และคุณควรส่งออกสัจพจน์ที่แข็งแกร่งที่สุดที่เป็นไปได้เสมอ กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ …

5
การสร้างตัวอักษรใน JavaScript
ฉันค่อนข้างแน่ใจว่าไม่มีวิธีที่ดีกว่าในการทำเช่นนี้ แต่คิดว่ามันไม่เจ็บที่จะถาม a='abcdefghijklmnopqrstuvwxyz'ฉันเหนื่อยกับการพิมพ์ออกมา ภาษาที่น่าสนใจมีRange('a'..'z')หรือคล้ายกัน เราจะทำอะไรกับ JS ที่สั้นที่สุด? for(i=97,a='';i<123;){a+=String.fromCharCode(i++)} ยาวกว่าตัวอักษร - แต่รับประกันได้ว่าฉันจะไม่ทำผิดพลาดที่ไหนสักแห่ง ฉันหวังว่าจะมีวิธีที่ไม่น่าเชื่อสักหน่อยที่จะสร้าง az ในตัวละครน้อยกว่า 50 ตัว ฉันยุ่งกับ i=97;Array(26).map(x=>String.fromChar....i++ แต่มันจะนานกว่าเสมอเมื่อฉันเข้าร่วมแล้วแบ่งอาร์เรย์ (26) เพื่อให้ใช้ได้ แก้ไข: ฉันได้รับมันลงไป [...Array(26)].reduce(a=>a+String.fromCharCode(i++),'',i=97) 60 ไบต์

4
การแบ่งส่วนกลับ
รับหมายเลขn> 77ให้เขียนโปรแกรมหรือฟังก์ชันที่พบชุดของจำนวนเต็มบวกที่แตกต่างกันอย่างเช่นผลรวมของเซตเท่ากับnและผลรวมของส่วนกลับของชุดเท่ากับ 1 ตัวอย่าง 80: 80 = 2 + 4 + 10 + 15 + 21 + 28 ⟶ 1/2 + 1/4 + 1/10 + 1/15 + 1/21 + 1/28 = 1 โปรแกรมหรือฟังก์ชั่นของคุณจะต้องทำงาน (ในทางทฤษฎี) สำหรับn <2 32ใด ๆและไม่ได้รับการยกเว้นสำหรับข้อผิดพลาดในการปัดเศษทศนิยม โปรดทราบว่ามีวิธีแก้ปัญหาสำหรับn> 77ทั้งหมด รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ มีแรงจูงใจโบนัสคือ: ฉันจะได้รับรางวัลเงินรางวัลเพื่อแก้ปัญหาน้อยที่สุดที่ผลงานใด ๆnและวิ่งเข้าสู่ระบบ (n) สำหรับnขนาดเล็กมันต้องเร็ว (ขึ้นอยู่กับดุลยพินิจของฉัน) ใช่มันเป็นไปได้

18
แก้ไขการค้นหาฐานอีกครั้ง
repdigitเป็นจำนวนธรรมชาติที่สามารถเขียนได้ แต่เพียงผู้เดียวโดยการทำซ้ำเหมือนกันหลัก ตัวอย่างเช่น777เป็น repdigit เนื่องจากมันประกอบด้วยตัวเลขหลัก7ซ้ำสามครั้งเท่านั้น สิ่งนี้ไม่ จำกัด เพียงแค่เลขฐานสิบ (ฐาน 10) แต่: หมายเลข Mersenne ทุกตัว (ของแบบฟอร์มM n = 2 n -1 ) คือ repdigit เมื่อเขียนเป็นเลขฐานสอง (ฐาน 2) ทุกหมายเลขนั้นมี repdigit เพียงเล็กน้อยเมื่อเขียนด้วยภาษาเดียว (ฐาน 1) ทุกหมายเลขnสามารถเขียนเป็น repdigit 11ในฐานได้เล็กน้อยn-1(เช่น17เมื่อเขียนเป็นเลขฐานสิบหก (ฐาน 16)) 11และ3เมื่อเขียนด้วยเลขฐานสอง (ฐาน 2) ก็เป็นเช่น11กัน ความท้าทายที่นี่คือการหาฐานอื่น ๆที่หมายเลขอินพุตอาจเป็น repdigit อินพุต จำนวนเต็มบวกx > 3ในรูปแบบที่สะดวก เอาท์พุต เป็นจำนวนเต็มบวกbกับ(x-1) > …

11
ความถี่ของบันทึกนี้คืออะไร?
ทบทวนดนตรีด่วน: คีย์บอร์ดเปียโนประกอบไปด้วย 88 โน้ต ในแต่ละคู่มี 12 บันทึกและC, C♯/D♭, D, D♯/E♭, E, F, F♯/G♭, G, G♯/A♭, A, A♯/B♭ Bทุกครั้งที่คุณกดปุ่ม 'C' ลวดลายจะซ้ำอีกครั้งในระดับที่สูงขึ้น หมายเหตุมีการระบุที่ไม่ซ้ำกันโดย 1) ตัวอักษรรวมทั้งเซียนหรือแฟลตใด ๆ และ 2) คู่ซึ่งเป็นตัวเลขตั้งแต่ 0 ถึง 8 โน้ตสามแรกของแป้นพิมพ์ที่มีและA0, A♯/B♭ B0หลังจากนี้มาสีเกล็ดเต็มรูปแบบในคู่ที่ 1 และC1, C♯1/D♭1, D1, D♯1/E♭1, E1, F1, F♯1/G♭1, G1, G♯1/A♭1, A1, A♯1/B♭1 B1หลังจากนี้มาขนาดสีเต็มรูปแบบในเลอะเลือน 2, 3, 4, 5, …
21 code-golf  music 

7
สร้างโปรแกรมในขนาดที่เพิ่มขึ้น
ในการท้าทายนี้คุณจะเขียนโปรแกรมที่แสดงผลโปรแกรมซึ่งมีความยาวเป็นสองเท่าของโปรแกรมต้นฉบับ โปรแกรมที่ส่งออกควรส่งออกโปรแกรมใหม่ที่โปรแกรมมีความยาวเป็นสองเท่า ตัวอย่าง หากโปรแกรมของฉันคือa: < a > aa < aa > aaaa < aaaa > aaaaaaaa กฎระเบียบ ไม่มีควินในตัว โปรแกรมต้นฉบับจะต้องมีอย่างน้อยหนึ่งไบต์ ในทางทฤษฎีลำดับควรทำงานอย่างไม่มีที่สิ้นสุด โปรแกรมของคุณไม่ได้รับอนุญาตให้อ่านจากสิ่งใด (ไฟล์, stdio) คะแนนของคุณคือขนาดของโปรแกรมต้นฉบับ

5
Pyth Practice 2
ถึงเวลาสำหรับการฝึกแบบ Pyth อื่น ฉันแสดงคำแถลงปัญหาที่นี่ 8 ข้อโดยใช้วิธีการแก้ปัญหาแบบ Pyth โซลูชันเหล่านี้เขียนขึ้นโดย Pythorn เขาค่อนข้างมีความสุขกับการแก้ปัญหาเหล่านี้เนื่องจากสั้นกว่าคำตอบของ Python มาก อย่างไรก็ตามงานของคุณคือการแสดงเขาให้ดีขึ้น สร้างโปรแกรมที่เทียบเท่า แต่สั้นกว่า นี่เป็นความท้าทายเกี่ยวกับลูกเล่นและการปรับแต่งที่สามารถใช้ได้เมื่อเล่นกอล์ฟใน Pyth นักกอล์ฟ Pyth อาจรู้จักกลอุบายมากมายที่เกี่ยวข้องซึ่งนำไปสู่การแก้ปัญหาที่สั้นลง อย่างไรก็ตามปัญหาบางอย่างจะต้องใช้วิธีผิดปกติบางอย่างที่ไม่ค่อยได้ใช้ เทคนิคบางอย่างที่ฉันไม่เคยเห็นมาก่อนในป่า แต่ไม่มีวิธีแก้ปัญหาที่ต้องการข้อบกพร่องหรือพฤติกรรมแปลก ๆ ที่ไม่ได้ตั้งใจโดยนักออกแบบของ Pyth คำตอบทั้งหมดจะต้องถูกต้องสำหรับการกระทำPythล่าสุด ( 2b1562b ) ในการโพสต์ของคำถามนี้ คุณสามารถใช้Pyth interpreterสำหรับการทดสอบ เป็นข้อมูลล่าสุดและฉันไม่คาดหวังการเปลี่ยนแปลงครั้งใหญ่ใน Pyth ที่จะทำให้โซลูชันที่ดีที่สุดหรือทำให้โซลูชันสั้นลง ล่ามออนไลน์ยังมีการอ้างอิงอักขระใหม่ เนื่องจากมันค่อนข้างใหม่คุณสามารถ (ควร) ใช้เอกสารเก่าด้วยในกรณีที่มีบางอย่างไม่ถูกต้องหรือหายไป เป้าหมาย:โซลูชันอ้างอิงทั้งหมด 81 ไบต์ เป้าหมายของคุณคือเอาชนะให้ได้มากที่สุด การส่งที่แก้ปัญหา 8 ทั้งหมดด้วยจำนวนไบต์ที่น้อยที่สุดที่ชนะทั้งหมด Tiebreaker คือวันที่ส่ง แน่นอนว่ามีเพียงการส่งที่ถูกต้องซึ่งมีวิธีแก้ไขปัญหาสำหรับ …
21 code-golf  pyth 

6
เกลียวสามเหลี่ยมอูลาม
ที่เราเคยมีคู่ของความท้าทายเกี่ยวกับเกลียวลาม แต่นั่นยังไม่เพียงพอ ในการท้าทายนี้เราจะวางแผนเกลียวสามเหลี่ยมอูลาม (ตรงข้ามกับเกลียวอูลาอัมสี่เหลี่ยมทั่วไป) นี่คือภาพร่างของเกลียวที่มีลักษณะ ดังที่เราทราบเกลียว Ulamจัดเรียงหมายเลขธรรมชาติทั้งหมดในเกลียวภายนอกและทำเครื่องหมายเฉพาะหมายเลขที่ดีที่สุดเท่านั้น ดังนั้นในภาพร่างด้านบนจะแสดงเฉพาะตัวเลขที่ปรากฏเป็นสีดำ (จำนวนเฉพาะ) ความท้าทาย ยอมรับตัวเลขNเป็นอินพุตและแสดงเกลียว Ulam แบบสามเหลี่ยมขึ้นไปยังหมายเลขนั้น อินพุตสามารถเป็น stdin หรือฟังก์ชันอาร์กิวเมนต์ เกลียวควรหมุนไปในทิศทางบวก (นั่นคือทวนเข็มนาฬิกา) ดังที่แสดงในภาพด้านบน การหมุนรอบ 120 องศาของรูปด้านบนจะถูกต้องและการเลี้ยวอาจแตกต่างกันไปสำหรับอินพุตที่แตกต่างกัน แต่ด้านต่ำสุดของสามเหลี่ยมที่บอกเป็นนัยควรเป็นแนวนอนเนื่องจากมีการเลี้ยวที่อนุญาตเท่านั้นคือ (ทวีคูณของ) 120 องศา รหัสควรทำงานตามหลักวิชา (ให้เวลาและหน่วยความจำเพียงพอ) สำหรับNใด ๆถึงสิ่งที่ได้รับอนุญาตจากการคำนวณระดับกลางใด ๆ ที่คุณทำกับชนิดข้อมูลเริ่มต้นของคุณ doubleก็เพียงพอแล้ว ไม่จำเป็นสำหรับประเภทจำนวนเต็มขนาดใหญ่ อนุญาตให้ใช้ฟังก์ชันในตัวทั้งหมด ฉันจะไม่ยอมรับคำตอบของตัวเอง (ไม่ใช่ว่าฉันคิดว่ามันจะสั้นที่สุดแล้ว ... ) รูปแบบเอาต์พุต เลือกข้อใดข้อหนึ่งต่อไปนี้ แสดงกราฟที่มีเครื่องหมาย (จุด, วงกลม, กากบาท, สิ่งที่คุณต้องการ) ที่จำนวนเฉพาะและไม่มีอะไรที่ตัวเลขที่ไม่สำคัญ สเกลไม่จำเป็นต้องเหมือนกันสำหรับสองแกน นั่นคือรูปสามเหลี่ยมโดยนัยไม่จำเป็นต้องมีด้านเท่ากันหมด แกนเส้นกริดและป้ายกำกับแกนเป็นอุปกรณ์เสริม …

1
นับรูปแบบเกมแห่งชีวิตทั่วไป
ภารกิจที่นี่คือการอ่านจาก.rleไฟล์Golly หรือข้อความธรรมดา (ตัวเลือกของคุณ) ที่มีชื่อไฟล์ให้ (บน STDIN หรือเป็นอาร์กิวเมนต์บรรทัดคำสั่ง) และระบุและนับรูปแบบทั่วไปในตารางที่เข้ารหัสในนั้น หรือคุณอาจเลือกที่จะมีเนื้อหาของไฟล์ที่ให้โดยตรงผ่าน STDIN แทน โปรแกรมของคุณควรจะสามารถระบุและเห็นความแตกต่างอย่างน้อยสิบห้าร่วมกับสิ่งมีชีวิตยังคงเข้มงวดและห้า oscillators ที่พบมากที่สุดรวมทั้งร่อน ขั้นตอนทั้งหมดของออสซิลเลเตอร์เหล่านี้ควรได้รับการยอมรับเช่นเดียวกับขั้นตอนทั้งสี่ของเครื่องร่อน มันควรจะออกรายการที่มีการนับครั้งสุดท้ายของแต่ละรูปแบบที่มีชื่อและปริมาณของแต่ละรูปแบบในบรรทัดที่แยกต่างหาก โปรแกรมของคุณอาจรวมอยู่ในรายการ ouput ทั้งรูปแบบเหล่านี้ทั้งหมดหรือเฉพาะรูปแบบที่พบอย่างน้อยหนึ่งรายการ รูปแบบที่เป็นส่วนหนึ่งของรูปแบบอื่น ๆ ที่นับไม่ควรนับ (ตัวอย่างเช่น 8-cell phase ของสัญญาณไม่ควรนับเป็นสองช่วงตึกและไม่ควรนับ tie-ship เป็นสองเรือรบ) คุณอาจสมมติว่าอินพุตมีความเสถียรแล้วและไม่มีรูปแบบใดที่ไม่อยู่ในชุดที่กำหนด คุณอาจสมมติว่ากริดอินพุตจะพอดีภายในกล่อง 1024x1024 นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดชนะ คำอธิบายรูปแบบไฟล์ RLE ไฟล์ RLE มีกริดไลฟ์แบบเข้ารหัสความยาววิ่ง บรรทัดทั้งหมดที่ขึ้นต้นด้วย#ความคิดเห็นและควรละเว้น x=<width>,y=<height>,rule=<rule>ครั้งแรกที่สายไม่ว่างเปล่าที่ไม่แสดงความคิดเห็นเป็นของแบบฟอร์ม B3/S23สำหรับจุดประสงค์ของงานนี้กฎจะเป็น มันอาจมีช่องว่างที่ควรถอดก่อนประมวลผลบรรทัดนี้ (แน่นอนว่าไม่จำเป็นต้องประมวลผลบรรทัดนี้เลย) บรรทัดที่ไม่ใช่ความคิดเห็นหลังจากบรรทัดแรกควรถูกใช้เป็นสตริงเดี่ยว นี้ควรมีเพียงตัวเลขทศนิยม, ตัวละคร$, bและoและแบ่งบรรทัดและจะไม่จบลงด้วยหลัก การขึ้นบรรทัดใหม่นั้นจะถูกเพิกเฉย แต่คุณอาจคิดว่าการขึ้นบรรทัดใหม่นั้นจะไม่รบกวนสตริงของตัวเลข !นี้อาจถูกยกเลิกโดยเป็นหนึ่งเดียว bหมายถึงเซลล์ที่ตายแล้วoหมายถึงเซลล์ที่มีชีวิตและ$แสดงถึงจุดสิ้นสุดของแถว …

3
หลักสูตรอุปสรรคของฉันแตกต่างกันอย่างไร
พื้นหลัง ฉันได้สร้างหลักสูตรอุปสรรคง่าย ๆ โดยการวางกล่องไว้ในห้องสี่เหลี่ยม ตอนนี้ฉันต้องการนับจำนวนวิธีที่แตกต่างกันเป็นหลักซึ่งสามารถแก้ไขได้ ฉันต้องการให้คุณเขียนโปรแกรมสำหรับสิ่งนั้น อินพุต .#การป้อนข้อมูลของคุณเป็นไม่ว่างเปล่าอาร์เรย์สี่เหลี่ยมของตัวละคร จุด.เป็นพื้นที่ว่างเปล่าและ#เป็นอุปสรรค เส้นทางผ่านอุปสรรคหลักสูตรเริ่มต้นที่มุมบนด้านซ้ายและปลายที่มุมด้านล่างขวาและไปเท่านั้นหรือลง นอกจากนี้เส้นทางที่ถูกต้องไม่สามารถผ่านสิ่งกีดขวางได้ นี่คือตัวอย่างบางส่วนที่วาดด้วย+-characters: Valid path Invalid path Invalid path Invalid path ++........ ++........ +++++..... ..+....... .++++++#.. .+.....#.. ....+++#++ ..++...#.. ......+#.. .+.++++#.. .......#.+ ...+++.#.. ....#.++++ .+++#.++++ ....#....+ ....#+.... เส้นทางสองเส้นทางนั้นมีความคล้ายคลึงกัน1หากสามารถแปลงเป็นอีกเส้นทางหนึ่งได้ด้วยการเคลื่อนที่ที+ละจุด พา ธ กลางจะต้องถูกต้องเช่นกันดังนั้นคุณไม่สามารถโค้งงอข้ามสิ่งกีดขวางได้ ตัวอย่างเช่นสองเส้นทางแรกที่นี่มีความคล้ายคลึงเป็นหลัก แต่ที่สามแตกต่างจากพวกเขาเป็นหลักเนื่องจากมันไม่สามารถเลื้อยข้ามสองอุปสรรค: ++........ +......... +++++++++. .+++++.#.. ++.....#.. .......#+. .....+.#.. .++++++#.. …

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