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

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

16
มีการเกิดตัวเลขในแถว / คอลัมน์ในเมทริกซ์ N ครั้งติดต่อกันหรือไม่?
รับเมทริกซ์A ที่ประกอบด้วยเลขจำนวนเต็มบวกและเลขจำนวนเต็มบวกN ตัวเดียวเป็นอินพุตและพิจารณาว่ามีเหตุการณ์ที่เกิดขึ้นติดต่อกันอย่างน้อยN ตัวของตัวเลขเดียวกันในแถวหรือคอลัมน์ใด ๆ ในเมทริกซ์ คุณต้องการทดสอบแนวนอนและแนวตั้งเท่านั้น กรณีทดสอบ N = 1 A = 1 Result: True ---------------- N = 3 A = 1 1 1 2 2 3 Result: True ---------------- N = 4 A = 1 1 1 2 2 3 Result: False ---------------- N = 3 A = …

22
ลดความซับซ้อนของการป้อนข้อมูลเมทริกซ์!
ฉันได้เขียนความท้าทายสองสามข้อที่เกี่ยวข้องกับเมทริกซ์และสิ่งที่พบโดยทั่วไปสำหรับฉันคือฉันใช้รูปแบบเหมือนด้านล่างเมื่อแสดงเมทริกซ์ทั้งในตัวอย่างและในกรณีทดสอบ: 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 นี่เป็นรูปแบบที่ยุ่งยากในหลายภาษา ท้าทาย: เขียนโปรแกรม / ฟังก์ชั่นที่สามารถใช้เมทริกซ์ในแบบฟอร์มที่กำหนดในด้านบนเป็น input (โดยตรงคัดลอก / วางจากการโพสต์นี้) และเอาท์พุทเมทริกซ์เดียวกันในทั้งสามรูปแบบทั่วไปอื่น ๆ ที่แสดงด้านล่าง รูปแบบอินพุต: ตัวเลขคั่นด้วยจำนวนช่องว่างที่แตกต่างกันและขึ้นบรรทัดใหม่เพื่อแสดงแถว (ดูกรณีทดสอบ) จำนวนช่องว่างระหว่างหมายเลขไม่รับประกันว่าจะสอดคล้องกัน อย่างไรก็ตามคุณอาจสันนิษฐานได้ว่าตัวเลขสุดท้ายในแต่ละคอลัมน์นั้นเรียงกัน (หากมีประโยชน์) สามารถมีได้ทั้งจำนวนเต็มและลอยและพวกเขาสามารถบวกลบหรือศูนย์ เมทริกซ์จะไม่ประกอบด้วยจำนวนเต็มและลอยในเวลาเดียวกัน คุณอาจคิดว่าไม่มีตัวเลขใดยาวเกิน 10 ตัวอักษรรวมถึงเครื่องหมายลบและจุดทศนิยมสำหรับการลบแบบลอย คุณอาจคิดว่ามีจำนวนรายการเท่ากันในแต่ละแถวและในแต่ละคอลัมน์ จะไม่มีเมทริกซ์อินพุตว่างเปล่า แต่อาจมีตัวเลขเดี่ยวหรือเมทริกซ์ที่มีแถวหรือคอลัมน์เดียวเท่านั้น ในกรณีเหล่านี้คุณสามารถเลือกรูปแบบผลลัพธ์ที่แสดงในกรณีทดสอบ โปรแกรม / ฟังก์ชั่นของคุณจะต้องจัดการอินพุตถ้ามันถูกคัดลอกโดยตรงจากโพสต์นี้และวางลงในล่าม (STDIN หรือเป็นอาร์กิวเมนต์ของฟังก์ชันหรือสิ่งที่เทียบเท่า) คุณอาจมีสิ่งที่คุณต้องการ …

4
ปลูกต้นไม้ในสวนสาธารณะ - เร็วที่สุดเท่าที่จะทำได้!
ความท้าทายนี้ได้รับแรงบันดาลใจจากแอพนี้ กรณีทดสอบถูกยืมมาจากแอพนั้น นี่คือความท้าทายรหัสที่เร็วที่สุดโดยมีวัตถุประสงค์เพื่อแก้กรณีทดสอบที่ใหญ่ที่สุดในเวลาน้อยที่สุด มีกรณีทดสอบขนาดเล็กกว่าเล็กน้อยเพื่อให้ผู้คนสามารถทดสอบอัลกอริทึมของพวกเขาได้เร็วขึ้น คุณจะได้รับตารางตารางการป้อนข้อมูลของขนาดn โดย nที่9 <= n <= 12 ตารางนี้จะแบ่งออกเป็นพื้นที่nซึ่งเซลล์ของแต่ละพื้นที่มีตัวระบุเฉพาะ (ฉันจะใช้ตัวอักษรตัวพิมพ์เล็กจากalในข้อความที่นี่ แต่คุณอาจเลือกสิ่งที่คุณต้องการเช่นจำนวนเต็ม1-12 ) . อินพุตอาจมีลักษณะดังนี้ (รูปแบบอินพุตเสริม): aabbbbbcc adddbbbcc adeeecccc adddefgcc hhhdifggg hdddifffg hhhiifffg hihiifffg iiiiiiggg หรือง่ายต่อการมองเห็น: ท้าทาย: คุณต้องวางต้นไม้2 * nในสวนนี้ตามกฎต่อไปนี้: จะต้องมี2ต้นต่อคอลัมน์และ2ต้นต่อแถว พื้นที่ทั้งหมดจะต้องมีต้นไม้2ต้น ไม่มีต้นไม้ใดที่สามารถติดกับต้นไม้ต้นอื่นได้ทั้งแนวตั้งแนวนอนหรือแนวทแยงมุม วิธีแก้ปัญหาสำหรับเค้าโครงด้านบนคือ: หมายเหตุ: มีเพียงทางออกเดียวสำหรับปริศนาแต่ละตัว กฎเพิ่มเติม: รูปแบบอินพุตและเอาต์พุตเป็นทางเลือก ตัวอย่างเช่นผลลัพธ์อาจเป็นรายการของดัชนีกริดที่มี1/0 เพื่อระบุว่ามีต้นไม้อยู่ในตำแหน่งนั้นหรือเป็นเวอร์ชั่นที่ได้รับการแก้ไขของอินพุตซึ่งมีการระบุต้นไม้ เวลาดำเนินการจะต้องกำหนดไว้ล่วงหน้า โปรแกรมจะต้องเสร็จสิ้นภายใน 1 นาทีที่คอมพิวเตอร์ของ @ isaacg รายละเอียด: 4 …

18
มันซ้ำแล้วซ้ำอีก?
สตริงอักขระซ้ำหากมีสตริงย่อยสองรายการติดต่อกันที่เทียบเท่า ตัวอย่างเช่น2034384538452ทำซ้ำเนื่องจากมี3845สองครั้งติดต่อกัน ดังนั้นความท้าทายของคุณคือการตัดสินใจว่าสตริงมีสตริงย่อยที่ซ้ำกันหรือไม่ คุณอาจรับอินพุตเป็นสตริงหรืออาเรย์ของอักขระ คุณจะไม่ได้รับอินพุตว่างเปล่าและความยาวของสตริงย่อย (ถ้ามี) อาจเป็น 1 หรือมากกว่า ฉันใช้1และ0นี่เป็นค่าความจริงและเป็นเท็จของฉัน แต่คุณอาจใช้ค่าที่แตกต่างกันตราบใดที่พวกเขามีความจริงและเป็นเท็จในภาษาของคุณ ตัวอย่าง: abcab -> 0 bdefdefg -> 1 Hello, World! -> 1 pp.pp/pp -> 1 q -> 0 21020121012021020120210121020121012021012102012021020121012021020120210121020120210201210120210121020121012021020120210121020121012021012102012021020121012021012102012101202102012021012102012021020121012021020120210121020121012021012102012021020121012021020120210121020120210201210120210121020121012021020120210121020120210201210120210201202101210201210120210121020120210201210120210121020121012021020120210121020121012021012102012021020121012021020120210121020120210201210120210121020121012021020120 -> 0 (ตัวอย่างสุดท้ายถูกสร้างขึ้นจากจำนวนของแต่ละศูนย์ในลำดับ Thue-Morse)

30
ฉันเป็นหมายเลข Automorphic หรือไม่
ตัวเลข Automorphic คือตัวเลขซึ่งเป็นส่วนต่อท้ายของตารางในฐาน 10 นี่คือลำดับA003226ใน OEIS งานของคุณ: เขียนโปรแกรมหรือฟังก์ชั่นเพื่อตรวจสอบว่าอินพุตเป็นตัวเลข Automorphic หรือไม่ การป้อนข้อมูล: จำนวนเต็มตั้งแต่ 0 ถึง 10 ^ 12 (รวม) ซึ่งอาจเป็นหรือไม่ได้เป็นตัวเลข Automorphic เอาท์พุท: ค่าความจริง / เท็จแสดงว่าอินพุตเป็นตัวเลข Automorphic หรือไม่ ตัวอย่าง: 0 -> truthy 1 -> truthy 2 -> falsy 9376 -> truthy 8212890625 -> truthy เกณฑ์การให้คะแนน: นี่คือโค้ดกอล์ฟคะแนนต่ำสุดเป็นไบต์ชนะ

13
วาดกระดานซูโดกุโดยใช้อักขระวาดเส้น
นี่คือรหัสกอล์ฟ สำหรับความท้าทายนี้ฉันจะยอมรับวิธีการ (คุณไม่จำเป็นต้องใช้โปรแกรมเต็มรูปแบบ) แต่ลายเซ็นวิธีจะนับรวมกับจำนวนไบต์และฉันต้องการดูลายเซ็นแบบเต็ม (ไม่ใช่ lamdba) อินพุตสำหรับวิธีการนี้เป็นอาร์เรย์จำนวนเต็มที่มีองค์ประกอบ 81 รายการ ค่าเอาต์พุต / ส่งคืนจากเมธอดคือสตริงที่แทนอาร์เรย์เป็นบอร์ด ascii sudoku หากคุณใช้ภาษาลึกลับหรือบางสิ่งบางอย่างที่ไม่มีวิธีการอย่างใดอย่างหนึ่งคุณสามารถปรับเปลี่ยนได้ แต่ถ้าภาษานั้นสนับสนุนสิ่งนี้ฉันต้องการเห็นบางสิ่งบางอย่างอาจจะเสียบเข้ากับโปรแกรมที่ "ไม่เป็นจริง" แม้ว่า วิธีร่างกายตัวเองเป็นความเจ็บปวดในการทำงานกับ ความต้องการไม่ได้หมายถึงการปิดกั้นภาษาเช่น Jelly หรือ 05AB1E แต่เพื่อให้ง่ายขึ้นสำหรับภาษาเช่น Java เพื่อสร้างสิ่งที่สมเหตุสมผลสำหรับแพลตฟอร์มนั้น สำหรับอินพุตค่าจำนวนเต็ม 1-9 ควรมีความหมายที่ชัดเจน 0 ควรตีความเป็นเซลล์ว่างเสมอ คุณอาจตีความสิ่งอื่นนอกเหนือจากช่วง 1-9 เป็นเซลล์ว่าง แต่ไม่จำเป็น การจัดตำแหน่งจากอาร์เรย์ไปยังตัวต่อปริศนาจะเริ่มต้นที่ด้านบนซ้ายและเติมแต่ละแถวจากซ้ายไปขวาก่อนที่จะย้ายไปยังแถวถัดไป สำหรับกล่องฉันต้องการเส้นคู่รอบนอกและระหว่างแต่ละพื้นที่ 3x3 และบรรทัดเดียวระหว่างเซลล์อื่น สิ่งเหล่านี้ควรวาดด้วยอักขระวาดเส้น (หากรูปแบบ I / O ของคุณแทนสตริงเป็นลำดับของไบต์แทนที่จะเป็นลำดับอักขระคุณควรแสดงอักขระเหล่านั้นในการเข้ารหัสที่รู้จักกันดีเช่น UTF-8 หรือ codepage 347) สำหรับความท้าทายนี้ฉันไม่ได้ขอให้คุณสร้างตัวต่อซูโดกุ …

30
ตัวแบ่งที่เหมาะสมผสม
หารที่เหมาะสมเป็นตัวหารของจำนวนnซึ่งไม่ได้เป็นnตัวเอง ตัวอย่างเช่นตัวหารที่เหมาะสมของ 12 คือ 1, 2, 3, 4 และ 6 คุณจะได้รับจำนวนเต็ม x , x ≥ 2 x ≤ 1000 งานของคุณคือการรวมตัวหารที่เหมาะสมที่สุดทั้งหมดของจำนวนเต็มจาก2ถึงx (รวม) (OEIS A280050 ) ตัวอย่าง (พร้อมx = 6): ค้นหาจำนวนเต็มทั้งหมดระหว่าง 2 ถึง 6 (รวม): 2,3,4,5,6 รับตัวหารที่เหมาะสมของพวกเขาทั้งหมดและเลือกตัวที่สูงที่สุดจากแต่ละหมายเลข: 2 -> 1 3 -> 1 4 -> 1, 2 5 -> 1 6 -> …

7
มันเป็นหมายเลขวงจรหรือไม่
หมายเลขวงโคจรคือตัวเลข "n" ซึ่งเมื่อคูณด้วย 1, 2, 3, ... n ผลลัพธ์จะเป็นตัวเลขเดียวกัน แต่เรียงตามลำดับอื่น ตัวอย่างเช่นหมายเลข 142,857 เป็นหมายเลขวนตั้งแต่ 142,857 x 2 = 285,714, 142,857 x 3 = 428,571, 142,857 x 4 = 571,428 และอื่น ๆ กำหนดอินพุตจำนวนเต็มพิจารณาว่าเป็นตัวเลขครบวงจรหรือไม่โดยการส่งออกค่าจริงถ้าเป็นและค่าเท็จถ้าไม่ นอกจากนี้เพื่อให้ชัดเจนอินพุตสามารถมี 0 ของผู้นำ: เช่น 034482758620689655171724137931 นี่เป็นเพราะถ้าเลขศูนย์นำหน้าไม่อนุญาตให้ใช้กับตัวเลขดังนั้น 142857 จึงเป็นตัวเลขวงเดียวในรูปทศนิยม เนื่องจากเป็น code-golf คำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!

20
พิมพ์ชื่อตัวแปร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา เขียนฟังก์ชั่น (ไม่ใช่โปรแกรมเต็มรูปแบบ) เพื่อที่ว่าถ้าฟังก์ชั่นนั้นถูกเรียกใช้พร้อมกับตัวแปรกลางเดียว (หรือเทียบเท่าที่ใกล้เคียงที่สุดกับภาษาของคุณ) เป็นอาร์กิวเมนต์มันจะส่งออก (เช่นพิมพ์หรือส่งคืน) ชื่อของตัวแปรนั้น หากอาร์กิวเมนต์ไม่ได้เป็นตัวแปรให้ส่งออกค่าความผิดพลาดแทน (คุณไม่ต้องจัดการกับกรณีที่อาร์กิวเมนต์เป็นตัวแปร แต่ไม่ใช่โกลบอล) จะต้องไม่มีการเชื่อมต่อเวลาคอมไพล์ระหว่างการเรียกใช้ฟังก์ชันและการกำหนดฟังก์ชัน (โดยเฉพาะการนิยามฟังก์ชันไม่สามารถเป็นแมโครหรือโครงสร้างที่คล้ายกันที่ได้รับการขัดแย้งในรูปแบบของการแยกส่วนของรหัสต้นฉบับไม่ว่าจะเป็นข้อความ แบบฟอร์ม). นั่นคือ: ในภาษาที่รองรับการคอมไพล์แยกต่างหากโปรแกรมต้องทำงานแม้ว่าการเรียกใช้ฟังก์ชันจะถูกคอมไพล์ก่อน (โดยที่ไม่มีความรู้เกี่ยวกับนิยามของฟังก์ชัน แต่อาจเป็นชนิดของลายเซ็นหรือเทียบเท่า) จากนั้นนิยามฟังก์ชันจะถูกคอมไพล์ภายหลัง หากภาษานั้นไม่มีการคอมไพล์แยกจากกันคุณจะต้องตั้งเป้าหมายในการแยกระหว่างการโทรและคำจำกัดความที่คล้ายกัน หากใช้ภาษาที่รวบรวมคุณอาจอ่านรูปแบบการคอมไพล์ของโปรแกรมที่สมบูรณ์จากดิสก์และอาจคิดว่าโปรแกรมนั้นถูกคอมไพล์ด้วยข้อมูลการดีบัก (ดังนั้นอนุญาตให้ใช้วิธีแก้ไขปัญหาที่ทำงานได้โดยแนบตัวดีบั๊กจากโปรแกรมเข้ากับตัวเอง) โปรดทราบว่างานนี้อาจไม่สามารถทำได้ในทุกภาษา ตัวอย่าง: var apple = "Hello" p(apple) // apple var nil = "Nothing" p(nil) // nil var SOMETHING = 69 p(SOMETHING) // …

9
Garble สายนั้น!
รับสตริงเป็นอินพุตเอาต์พุตหนึ่งหรือหลายตัวแปรของสตริงเช่น: ไม่มีอักขระอยู่ในตำแหน่งดั้งเดิม ไม่มีอักขระอยู่ติดกับอักขระที่ แต่เดิมติดกับ คุณสามารถสันนิษฐานได้ว่าสิ่งนี้จะเป็นไปได้สำหรับสตริงที่กำหนดและจะมีเพียงตัวอักษรตัวอักษรตัวพิมพ์เล็ก ( [a-z]หรือ[A-Z]ถ้าคุณต้องการ) โปรดทราบว่าการซ้ำซ้อนของอักขระเดียวกันจะไม่ถือว่าไม่ซ้ำกัน ตัวอย่างเช่นเมื่อรับอินพุตprogrammingเอาต์พุตจะต้องไม่มีอักขระmat 7 หรือ 8th และไม่สามารถมีอักขระที่g4 หรือ 11 (1 ดัชนี) ตัวอย่าง: รับสาย abcdef ต่อไปนี้จะเป็นผลลัพธ์ที่ถูกต้อง: daecfb อย่างไรก็ตามสิ่งต่อไปนี้จะไม่ถูกต้อง: fdbcaeในตัวอย่างนี้cและbยังคงอยู่ติดกัน คำคุณศัพท์ห่อหุ้มซึ่งหมายความว่าคุณไม่สามารถทำfdbecaตามfและaยังคงอยู่ติดกัน Testcases: โปรดทราบว่าสิ่งเหล่านี้ไม่ใช่ผลลัพธ์ที่ถูกต้องเท่านั้นสำหรับอินพุตที่กำหนด เขียนเป็นinput -> output: helowi -> ioewhl mayube -> euabmy stephens -> nhseespt aabcdeffghij -> dbfhjfigaeca เกณฑ์การให้คะแนน: นี่คือโค้ดกอล์ฟที่มีจำนวนน้อยที่สุดในแต่ละภาษาที่ชนะ!

6
รหัสของสหรัฐอเมริกาที่มีประสิทธิภาพยิ่งขึ้น
อักษรย่อของสหรัฐอเมริกานั้น! สนุก แต่เราได้เรียนรู้ว่าการย่อชื่อรัฐในสหรัฐอเมริกาอย่างมีประสิทธิภาพนั้นยากกับระบบปัจจุบัน ลองมากับรูปแบบรหัสรัฐทางเลือกสำหรับการเล่นกอล์ฟที่มีประสิทธิภาพ งานของคุณ: เขียนฟังก์ชั่น (หรือโปรแกรม) ซึ่งให้ชื่อรัฐของสหรัฐอเมริกาที่ถูกต้อง (เพียง 50 สถานะปกติที่จำเป็น) ส่งคืนโค้ดสองตัวอักษรที่ไม่ซ้ำกันในตัวพิมพ์ใหญ่ที่ระบุมัน รหัสจะต้องตรงตามข้อกำหนดเหล่านี้: ตัวอักษรตัวแรกจะต้องเหมือนกับตัวอักษรตัวแรกของรัฐ ตัวอักษรตัวที่สองต้องเป็นหนึ่งในตัวอักษรอื่น ๆ ของรัฐ (ไม่ใช่ช่องว่าง) จะต้องให้ผลลัพธ์เดียวกันสำหรับอินพุตเดียวกันและจะต้องไม่ให้เอาต์พุตเดียวกันสำหรับอินพุตที่ถูกต้องสองรายการ ตัวอย่างเช่นเมื่อได้รับ "Alabama" ฟังก์ชันของคุณอาจส่งคืน "AL", "AA", "AB" หรือ "AM" - ตราบใดที่มันไม่ส่งคืนค่านั้นสำหรับ Alaska, Arkansas ฯลฯ ("AA "เป็นไปได้เพียงเพราะ" A "ปรากฏมากกว่าหนึ่งครั้งในชื่อรัฐ) ช่องโหว่มาตรฐานต้องห้าม อินพุต / เอาต์พุตมาตรฐานก็โอเค นี่คือโค้ดกอล์ฟวิธีแก้ปัญหาที่สั้นที่สุดในหน่วยไบต์ชนะ รายการทั้งหมดของอินพุตที่เป็นไปได้อยู่ที่นี่: Alabama Alaska Arizona Arkansas California Colorado Connecticut Delaware …
20 code-golf  string 

19
วาด ASCII X ขนาดใหญ่
ปัญหา แรงบันดาลใจจากการท้าทายครั้งก่อนทำสิ่งที่คล้ายกัน รับอินพุตจำนวนเต็มบวก nเอาต์พุตรูปร่างที่ตามหลังรูปแบบนี้: อินพุตn=1: * * * * * อินพุตn=2: ** ** **** ** **** ** ** อินพุตn=3: *** *** *** *** ***** *** ***** *** *** *** *** และอื่น ๆ ... มันมีคุณสมบัติเหล่านี้: n*2+1 เส้นสูง "แขน" nกว้างยกเว้นเมื่อรวมกัน เส้นกลางnกว้าง ถ้าnเป็นแม้กระทั่งเส้นด้านบนและด้านล่างตรงกลางn*2กว้าง ถ้าnเป็นคี่เส้นด้านบนและด้านล่างตรงกลางn*2-1กว้าง กฎระเบียบ ยอมรับการขึ้นบรรทัดใหม่ ช่องโหว่มาตรฐานใช้ ไบต์ที่สั้นที่สุดชนะ เอาต์พุตอาจถูกพิมพ์ออกมาหรือสตริงหรืออาร์เรย์ของสตริง การแก้ไข n=0 ไม่จำเป็นต้องได้รับการจัดการ อนุญาตให้ใช้ช่องว่างต่อท้าย

6
วาดดวงจันทร์
ท้าทาย เมื่อกำหนดระยะของดวงจันทร์ให้วาดโดยใช้ศิลปะ ASCII โปรแกรมของคุณจะต้องจัดการกับดวงจันทร์ใหม่จันทร์เสี้ยวแว็กซ์ในไตรมาสแรกแว็กซ์แวบ ๆ เต็มพระจันทร์เต็มดวงจันทร์แรมที่ลดลงในไตรมาสที่แล้วและจันทร์เสี้ยวที่กำลังจาง ข้อมูลที่คุณป้อนจะเป็นจำนวนเต็ม 0 -> new moon 1 -> waxing crescent 2 -> first quarter 3 -> waxing gibbous 4 -> full moon 5 -> waning gibbous 6 -> last quarter 7 -> waning crescent ASCII art ทั้งหมดถูกวางไว้บนกริด 16x8 (เพราะอัตราส่วนขนาดตัวอักษร) คุณสามารถแทนที่.ด้วยอักขระใด ๆ และ#ด้วยอักขระที่ไม่ใช่ช่องว่างอื่น ๆ ผลลัพธ์สำหรับดวงจันทร์ใหม่ควรเป็น: ................ …

16
ถอดรหัสการเข้ารหัส xor
งานของคุณคือการใช้สตริงที่เข้ารหัสเป็นอินพุตและเอาต์พุตสตริงที่ถอดรหัสเพื่อแสดงข้อความที่ซ่อนอยู่ สตริงทั้งอินพุตและเอาต์พุตจะมีอักขระจากรายการของอักขระ ASCII 64 ตัว (หมายเหตุการเว้นวรรคนำหน้า): !"#$%&'()*+,-./0123456789:;=?@[\]^_abcdefghijklmnopqrstuvwxyz|~ อักขระเหล่านี้เป็นตัวเลขที่กำหนดตามลำดับที่แสดงไว้ด้านบน: ! " # $ % & ... 0 1 2 3 4 5 6 ... ดังนั้นช่องว่างคือหมายเลข 0 !คือหมายเลข 1 และ~เป็นหมายเลข 63 ตัวเลขเหล่านี้สามารถแสดงในรหัสไบนารี 6 บิต: : 0: 000000 !: 1: 000001 ": 2: 000010 #: 3: 000011 .. ... ...... z: 61: 111101 …

30
อ่านรหัสผ่าน
ความท้าทายของคุณคือการอ่าน "รหัสผ่าน" จากแป้นพิมพ์ / อินพุตมาตรฐาน ถาม : อ่านสตริงอย่างsล่องหน สำหรับแต่ละตัวละครในพิมพ์ตัวอักษรsc ในแบบเรียลไทม์ กฎ: คุณต้องพิมพ์cแบบเรียลไทม์ cทันทีที่ผู้ใช้ป้อนตัวอักษรที่คุณจะต้องแสดง c จะต้องคงที่นั่นคือมันจะต้องเป็นตัวละครเดียวกัน cสามารถเป็นอักขระที่มองเห็นได้ (เช่นไม่สามารถขึ้นบรรทัดใหม่เว้นวรรคแท็บหรือไม่สามารถพิมพ์ได้) cไม่สามารถอ้างอิงได้sเช่นcต้องกำหนด / ค่าคงที่ก่อนsอ่าน c ต้องเหมือนกันทุกครั้งที่รันโปรแกรม cสามารถเป็นหนึ่งในตัวละครในsถ้าโดยบังเอิญตราบใดที่มีการปฏิบัติตามกฎอื่น ๆ ไม่มีตัวอักษรของที่sอาจปรากฏบนหน้าจอcยกเว้น (ดูกฎก่อนหน้า) คุณสามารถใช้วิธีการอินพุตและเอาท์พุตที่สมเหตุสมผลได้หากมีการปฏิบัติตามกฎอื่น ๆ ทั้งหมด คุณอาจคิดว่าความยาวsไม่เกินความกว้างหน้าต่างเทอร์มินัล / กราฟิก หากใช้เทอร์มินัลโปรแกรมของคุณควรยกเลิกหลังจากมีการขึ้นบรรทัดใหม่หรือ EOF ตัวอย่าง : ถ้าsเป็นpassword01และcเป็น*ผลลัพธ์จะมีลักษณะดังนี้: ผู้ชนะ : การส่งที่สั้นที่สุดในแต่ละภาษาชนะ
20 code-golf  string 

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