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

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

10
เลิกทำกราฟ
บทนำ ในความท้าทายนี้คุณจะได้รับกราฟกำกับด้วยการวนรอบตัวเองและงานของคุณคือการแปลงให้เป็นกราฟที่ไม่ได้เปลี่ยนทิศทางโดยไม่มีการวนรอบเอง อินพุต การป้อนข้อมูลของคุณเป็นกราฟกำกับโดยมีการตั้งค่าจุดยอด{0, 1, ..., n-1}สำหรับจำนวนธรรมชาติn ≥ 0(หรือ{1, 2, ..., n}ถ้าคุณใช้การจัดทำดัชนีแบบ 1) กราฟจะได้รับเป็น length- nรายการLที่เป็นรายการของออกจากเพื่อนบ้านของจุดสุดยอดL[i] iตัวอย่างเช่นรายการ[[0,1],[0],[1,0,3],[]]แสดงกราฟ .-. | v '-0<--2-->3 ^ | | | v | 1<--' โปรดทราบว่ารายชื่อเพื่อนบ้านไม่จำเป็นต้องสั่งซื้อ แต่รับประกันว่าจะไม่ซ้ำซ้อน เอาท์พุต เอาต์พุตของคุณเป็นกราฟอื่นในรูปแบบเดียวกับอินพุตที่ได้จากกราฟดังต่อไปนี้ ลบการวนซ้ำทั้งหมด สำหรับแต่ละขอบที่เหลือu -> vให้เพิ่มขอบที่กลับด้านv -> uถ้ายังไม่มีอยู่ เช่นเดียวกับอินพุตรายการเพื่อนบ้านของกราฟผลลัพธ์อาจไม่ได้เรียงลำดับ แต่พวกเขาไม่สามารถมีรายการซ้ำได้ สำหรับกราฟด้านบนเอาต์พุตที่ถูกต้องจะเป็น[[1,2],[0,2],[0,1,3],[2]]ซึ่งแทนกราฟ 0<->2<->3 ^ ^ | | v | 1<--' กฎระเบียบ …

4
สร้างนาฬิกา ASCII Fibonacci
มีคนสร้างนาฬิกาแฟนซีขึ้นมาจริงๆโดยใช้ตัวเลขฟีโบนักชีซึ่งดูดีมาก แต่ใช้ไม่ได้ ในแบบที่เราชอบ! มาสร้างใหม่กันเถอะ นาฬิกาประกอบด้วย 5 ส่วนที่สอดคล้องกับหมายเลข Fibonacci ห้าตัวแรกเริ่มต้นจาก 1 (เช่น 1, 1, 2, 3, 5): ccbeeeee ccaeeeee dddeeeee dddeeeee dddeeeee นาฬิกาสามารถแสดงเวลา 12 ชั่วโมงโดยเพิ่มทีละ 5 นาที นี่คือวิธีการทำงาน พิจารณาเวลา 7:20 7 ชั่วโมงสามารถแบ่งออกเป็นตัวเลขที่ได้รับ Fibonacci เป็น 7 = 2 + 5 นอกจากนี้ยังมี 4 หน่วยห้านาที 4 สามารถย่อยสลายได้เป็น 4 = 2 + 1 + 1 …

3
คุณเรียกว่ากึ่งกลางฉันเรียกมันว่า Code Golf
"ลองดูสิภาพที่จัดเรียงนั้นเหมือนของขวัญเล็กน้อยจากสวรรค์ยินดีต้อนรับ แต่ไม่คาดคิด" - Geobits มากกว่า 10,000 ชื่อเสียงให้กับใครก็ตามที่ชนะการท้าทายนี้ กฎ: 1) คุณต้องสร้างโปรแกรม 2) อินพุตจะเป็นรูปภาพอย่างไรก็ตามไม่ว่าจะผ่านเป็นไฟล์หรือรายการหมายเลขขึ้นอยู่กับคุณ 3) เอาท์พุทจะเป็นไฟล์ที่เมื่อเปิดในสี (หรือคล้ายกัน) จะแสดงภาพที่จัดตำแหน่ง 4) ขนาดผ้าใบจะอยู่ระหว่าง 100 x 100 และ 2000 x 2000 พิกเซล มันจะเป็นรูปสี่เหลี่ยมผืนผ้าเสมอ แต่ไม่ใช่รูปสี่เหลี่ยมเสมอ 5) ไม่มีการเข้ารหัสอย่างหนักของภาพหรือมายากล URL ที่ขี้ขลาด 6) ไม่มีไลบรารีภายนอกที่จะใช้ คู่มือการรวมศูนย์ (ตัวแปร Joshpbarron) รูปภาพจะถูกกำหนดให้อยู่กึ่งกลางถ้าสีขาวตัวที่ 1 (255,255,255,> 0 rgba) หรือโปร่งแสง (x, y, z, 0 rgba) บนแกนคือระยะทางที่เท่ากัน (บวกหรือลบ …

2
แสดงตัวเลข - "Des Chiffres et des Lettres" ที่ทันสมัย
แสดงตัวเลข ย้อนกลับไปในยุค 60 ฝรั่งเศสได้ประดิษฐ์รายการทีวีเกม "Des Chiffres et des Lettres" (ตัวเลขและตัวอักษร) เป้าหมายของส่วน Digits ของรายการนั้นใกล้เข้ามามากที่สุดเท่าที่จะทำได้กับตัวเลขเป้าหมาย 3 หลักโดยใช้ตัวเลขที่เลือกแบบกึ่งสุ่ม ผู้เข้าแข่งขันสามารถใช้โอเปอเรเตอร์ต่อไปนี้: การต่อข้อมูล (1 และ 2 คือ 12) การเพิ่ม (1 + 2 คือ 3) การลบ (5 - 3 = 2) ส่วน (8/2 = 4); อนุญาตให้แบ่งได้ถ้าผลลัพธ์นั้นเป็นจำนวนธรรมชาติ การคูณ (2 * 3 = 6) วงเล็บเพื่อแทนที่การมาก่อนของการดำเนินการปกติ: 2 * (3 + …

3
การแข่งขันของตัวเลข
คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดลำดับเริ่มต้นของจำนวนเต็มบวกหนึ่งหลักที่แตกต่างกันอย่างชัดเจนและความยาวของแทร็กเป็นเอาท์พุทอินพุตหรือส่งคืนลำดับเสร็จสิ้นของตัวเลข อินพุต[5,1,2,6,7] and 14กำหนดการแข่งขันต่อไปนี้: -------------- 76215 -> -------------- กฎของการแข่งขัน แทร็กล้อมรอบและหลักสามารถไปหลายรอบ คำสั่งของขั้นตอนเป็นรอบและขึ้นอยู่กับตำแหน่งเริ่มต้น 5 1 2 6 7 5 1 2 ...ในตัวอย่างของเรา ต้องไม่มีตัวเลขหลายหลักในตำแหน่งเดียวกัน ทุกหลักมีความเร็วของdigit_valueเซลล์ต่อขั้นตอน การแซงตัวเลขหรือการบล็อกตัวเลขต่อเนื่องมีค่าใช้จ่ายเพิ่มอีกหนึ่งขั้น หากตัวเลขไม่มีความเร็วที่จำเป็นสำหรับสิ่งนั้นมันจะหยุดก่อนที่ตัวเลข (บล็อก) ตัวอย่าง: [41 ] => [ 1 4 ] 4 overtakes 1 [2 1 ] => [ 21 ] 2 can only move 1 as it …

6
คำนำหน้าหลักการโดยโปรแกรมในรูปแบบ
คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่ส่งออกหรือส่งคืนของบทที่หนึ่งของเจ้าชายน้อยที่สุดเท่าที่จะทำได้ โปรแกรมหรือฟังก์ชั่นของคุณจะต้องเป็นบล็อคโค้ด M-by-N ที่มีอักขระ ASCII ที่พิมพ์ได้เท่านั้น (codepoint ตั้งแต่ 32 ถึง 126) และขึ้นบรรทัดใหม่ที่ท้ายแต่ละแถว คุณสามารถใช้อักขระที่คุณเลือกได้ไม่เกิน 26 ตัวจากอักขระ ASCII ที่พิมพ์ได้ 96 ตัว (และขึ้นบรรทัดใหม่ที่ท้ายแถว) ในแต่ละแถวและคอลัมน์อักขระทุกตัวจะต้องมีความแตกต่างคล้ายกับตัวต่อซูโดกุเช่นไม่มีตัวอักษรในแถวหรือคอลัมน์สองครั้ง codeblock ตัวอย่างที่ถูกต้องด้วยM = 4, N = 3และalphabet = {a,b,c,d,/,*}: abcd bcd* */ac รายละเอียดรหัส คุณสามารถเลือกรูปร่างของการบล็อกรหัสของคุณ (เช่นMและN) บล็อกต้องเต็มไปด้วยอักขระทั้งหมดเช่นทุกแถวจะต้องมีความยาวเท่ากัน ขึ้นบรรทัดใหม่ท้ายท้ายแถวสุดท้ายเป็นทางเลือก ดังที่เขียนไว้ด้านบนในแต่ละแถวและคอลัมน์อักขระทุกตัวจะต้องแตกต่างกัน รายละเอียดผลลัพธ์ คุณควรเอาท์พุทหรือคืนคำนำหน้าของบทที่ 1 ของ The Little Prince โดยไม่ต้องเพิ่มเอาต์พุต หากคุณมาถึงบรรทัดใหม่ในข้อความคุณสามารถแสดงว่ามันเป็นตัวแปรทั่วไป (\ r, …

4
ทดสอบว่าตัวเลขเป็นสี่เหลี่ยมหรือไม่
เขียนGOLFโปรแกรมการชุมนุมว่าได้รับแบบ 64 บิตจำนวนเต็มไม่ได้ลงนามในการลงทะเบียนnทำให้ไม่เป็นศูนย์ค่าลงทะเบียนsถ้าnเป็นตารางที่มิฉะนั้นเข้าไป0s GOLFไบนารี่ของคุณ(หลังการประกอบ) จะต้องมีขนาด 4096 ไบต์ โปรแกรมของคุณจะได้รับคะแนนโดยใช้โปรแกรม Python3 ต่อไปนี้ (ซึ่งจะต้องใส่ไว้ในไดเรกทอรีGOLF ): import random, sys, assemble, golf, decimal def is_square(n): nd = decimal.Decimal(n) with decimal.localcontext() as ctx: ctx.prec = n.bit_length() + 1 i = int(nd.sqrt()) return i*i == n with open(sys.argv[1]) as in_file: binary, debug = assemble.assemble(in_file) score = 0 …

4
สร้างซูโดกุ unsolver ขั้นต่ำ
ความพยายามของฉันในการระบุคำถามนี้แต่มีเกณฑ์การแก้ปัญหาที่เป็นเป้าหมายมากกว่า งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่ใช้กริด Sudoku ที่ได้รับการแก้ไขSในรูปแบบที่คุณเลือกและพยายามที่จะสร้างกริดปัญหาที่มีปมน้อยที่สุดเท่าที่จะทำได้ซึ่งSเป็นวิธีแก้ปัญหาเฉพาะ (ไม่สำคัญว่าวิธีการSใดจะเป็นวิธีการแก้ปัญหาที่ไม่ซ้ำกันโดยรวมถึงแรงเดรัจฉานตราบใดที่การแก้ปัญหาเป็นเอกลักษณ์พิสูจน์ได้) โปรแกรมของคุณจะได้คะแนนจากการรันผ่านชุดกริดการแก้ปัญหา 100,000 ชุดที่พบในไฟล์นี้ (ดาวน์โหลด 7.82 MB) และเพิ่มจำนวนเบาะแสในกริดปัญหา 100,000 ปัญหาที่โซลูชั่นของคุณสร้างขึ้น โซลูชัน Sudoku ในไฟล์ทดสอบด้านบนแสดงเป็นสตริงตัวอักษร 81 ตัวจากซ้ายไปขวาและจากบนลงล่าง รหัสที่ต้องใช้ในการแปลงอินพุตในไฟล์ทดสอบเป็นโซลูชันที่ใช้งานได้จะไม่นับรวมเป็นจำนวนไบต์ของโซลูชันของคุณ เช่นเดียวกับความท้าทายFlood Paintของฉันโปรแกรมของคุณต้องสร้างผลลัพธ์ที่ถูกต้องสำหรับปริศนาทั้งหมด 100,000 ตัวเพื่อพิจารณาว่าเป็นวิธีแก้ปัญหาที่ถูกต้อง โปรแกรมที่ให้ผลลัพธ์เบาะแสที่น้อยที่สุดสำหรับผู้ทดสอบ 100,000 รายนั้นเป็นผู้ชนะโดยมีรหัสที่สั้นลง กระดานคะแนนปัจจุบัน: 2,361,024 - nutki, C 2,580,210 - es1024, PHP 6,000,000 - CarpetPython, Python 2 7,200,000 - Joe Z. , Python

3
ASCII L-system renderer
พื้นหลัง L-ระบบ (หรือระบบ Lindenmayer) เป็นระบบการเขียนแบบขนานที่เหนือสิ่งอื่น ๆ ที่สามารถใช้งานได้ง่ายเพื่อ fractals รุ่น คำถามนี้เกี่ยวข้องกับการกำหนดบริบทฟรี L-ระบบ สิ่งเหล่านี้ประกอบด้วยตัวอักษรของสัญลักษณ์สตริงสัจพจน์เริ่มต้นและชุดของกฎการเขียนใหม่การแมปสัญลักษณ์ตัวอักษรแต่ละตัวกับสายอักขระใหม่ กฎถูกนำไปใช้กับสัจพจน์ในแบบคู่ขนานสร้างสตริงใหม่ กระบวนการนี้ซ้ำแล้วซ้ำอีก ตัวอย่างเช่นระบบที่มีสัจพจน์ "A" และกฎ A = ABA; B = BBB สร้างลำดับของสตริง "ABA", "ABABBBABA", "ABABBBABABBBBBBBBBABABBBABA" อย่างชัดเจนเราไม่ได้กล่าวถึง ตัวอักษรเมื่อกำหนดระบบ L นอกจากนี้สัญลักษณ์ใด ๆ ที่ไม่มีกฎการเขียนที่ชัดเจนจะถือว่าไม่มีการเปลี่ยนแปลง (เช่นกฎเริ่มต้นสำหรับสัญลักษณ์ A คือ A = A) ระบบ L สามารถมองเห็นได้โดยใช้รูปแบบของกราฟิกเต่า โดยการประชุมเต่าเริ่มหันหน้าไปทางขวา สตริงจะถูกดึงโดยการวนซ้ำสัญลักษณ์: F หมายถึง "ดึงไปข้างหน้าหนึ่งหน่วย", G หมายถึง "เคลื่อนที่ไปข้างหน้าหนึ่งยูนิต", …

6
วงกลมที่ทับซ้อนกัน
คุณควรจะเขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับNจากNตารางสี่เหลี่ยมเว้นระยะห่างเท่า ๆ กันและเอาท์พุทที่เป็นของแข็งวงกลมไว้หรือผลตอบแทนจำนวนตารางสี่เหลี่ยมที่มีการซ้อนทับบางส่วนหรือเต็มโดยวงกลมที่เป็นของแข็ง การทับซ้อนขนาด 0 (เช่นเมื่อวงกลมแตะเพียงเส้นเดียว) จะไม่ถูกนับ (ทับซ้อนเหล่านี้เกิดขึ้นที่เช่นN = 10.) ตัวอย่าง N = 8 (64 squares), Slices = 60 อินพุต N > 0จำนวนเต็ม (กริดจะมีN * Nกำลังสอง) เอาท์พุต จำนวนเต็มหมายถึงจำนวนชิ้นวงกลมทึบ ตัวอย่าง (คู่อินพุต - เอาต์พุต) Inputs: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Outputs: 1 …

1
เขียนตัวแก้ความซับซ้อนของ Kolmogorov
ซับซ้อน KolmogorovของสตริงSคือความยาวของโปรแกรมสั้นPเขียนในบางภาษาโปรแกรมLที่มีการส่งออกเป็นสิ่งS (ใช่คำจำกัดความที่แท้จริงนั้นเป็นทางการมากกว่า แต่จะเพียงพอสำหรับความท้าทาย) งานของคุณในความท้าทายนี้คือการเขียนที่เป็นไปได้ "Kolmogorov ซับซ้อนแก้" ที่สั้นที่สุดที่เป็นโปรแกรมที่เขียนในLตัวเองที่ใช้เวลาในสตริงSและผลตอบแทนที่สั้นที่สุดPเขียนในLที่เอาท์พุทS วิธีไร้เดียงสาที่จะนี้คือการย้ำกว่าทุกความยาว 1 โปรแกรมแล้วทั้งหมดยาว 2 โปรแกรมแล้วทั้งหมดความยาว 3 โปรแกรมและอื่น ๆ ทำงานแต่ละของพวกเขาและการวัดการส่งออกจนกว่าโปรแกรมที่เอาท์พุทSพบ ปัญหาของวิธีนี้คือโปรแกรมบางตัวอาจไม่หยุดทำงานซึ่งหมายความว่าตัวแก้ปัญหาอาจไม่หยุดทำงาน และเนื่องจากปัญหาการหยุดทำงานไม่มีวิธีที่แน่นอนในการหลีกเลี่ยงโปรแกรมที่ไม่หยุด เรียบง่าย แต่วิธีการแก้ปัญหาที่ไม่สมบูรณ์คือการใส่เวลาที่ จำกัด ในเวลาดำเนินการของแต่ละศักยภาพP 's โปรแกรมที่ไม่ได้หยุดชะงักในเวลาอาจถูกส่งผ่าน แต่ตัวแก้ปัญหาจะหยุดแน่นอน (สมมติว่าโปรแกรมในLสามารถส่งออกSภายในเวลาที่กำหนด) ท้าทาย เขียนตัวแก้ปัญหาของคุณเป็นโปรแกรมหรือฟังก์ชั่นที่มีสามสิ่ง: สตริงS เลขจำนวนเต็มบวกTนั่นคือการ จำกัด เวลาในหน่วยวินาทีหรือบางช่วงเวลาที่เล็กลง (เช่นมิลลิวินาที) สตริงAของตัวอักษรของอักขระที่ใช้สำหรับP 'ที่มีศักยภาพ และผลที่สั้นที่สุดPที่มีเพียงตัวละครในวิ่งในเวลาน้อยกว่าTหน่วยเวลาและเอาท์พุทS นี่คือ pseudocode ทั่วไป: Function KolmogorovComplexitySolver(S, T, A): Assign N to 0 Loop until …

5
การดำเนินการบิตที่ไม่ฉลาด
ฉันชอบเล่นกอล์ฟdcแต่บางครั้งฉันก็รู้สึกท้อแท้เพราะdcไม่มีปฏิบัติการในระดับบิต ท้าทาย ให้สี่ฟังก์ชั่นการตั้งชื่อที่ใช้เทียบเท่าของการดำเนินงานคบิต&, |, ~และ^(บิต AND, OR, NOT และแฮคเกอร์) แต่ละฟังก์ชันจะใช้ตัวถูกดำเนินการสองตัว ( ~รับเพียงตัวเดียว) ซึ่งเป็นจำนวนเต็มอย่างน้อย 32 บิตที่ไม่ได้ลงชื่อ แต่ละฟังก์ชั่นจะคืนค่าจำนวนเต็มที่ไม่ได้ลงนามซึ่งมีความกว้างบิตเท่ากับตัวถูกดำเนินการ การ จำกัด คุณสามารถใช้การดำเนินการที่ได้รับการสนับสนุนdcเท่านั้น เหล่านี้คือ: + - * / การบวกการลบการคูณและการหารทางคณิตศาสตร์ ~ modulo (หรือ divmod หากภาษาของคุณรองรับ) ^ การยกกำลัง | การยกกำลังแบบแยกส่วน v รากที่สอง > >= == != <= < ผู้ประกอบการความเสมอภาค / ความไม่เท่าเทียมกันมาตรฐาน >> <<ผู้ประกอบการเปลี่ยนบิต dcไม่มีสิ่งเหล่านี้ แต่เนื่องจากมีการใช้งานเพียงเล็กน้อยในแง่ของการหาร / …

3
สร้างการเรียงสับเปลี่ยน
บทนำ สมมติว่าคุณได้รับการเปลี่ยนรูปแบบสุ่มของnวัตถุ การเรียงสับเปลี่ยนถูกผนึกไว้ในกล่องดังนั้นคุณจึงไม่รู้ว่าเป็นn!ไปได้ใด หากคุณพยายามที่จะใช้การเรียงสับเปลี่ยนกับnวัตถุที่แตกต่างคุณสามารถอนุมานตัวตนได้ทันที อย่างไรก็ตามคุณได้รับอนุญาตให้ใช้การเปลี่ยนแปลงกับnเวกเตอร์ไบนารี่แบบยาวซึ่งหมายความว่าคุณจะต้องใช้มันหลายครั้งเพื่อที่จะจดจำมัน เห็นได้ชัดว่านำไปใช้กับnเวกเตอร์ที่มีเพียง1งานเดียว แต่ถ้าคุณฉลาดคุณสามารถทำได้ด้วยlog(n)แอปพลิเคชัน รหัสสำหรับวิธีการนั้นจะยาวกว่า ... นี่เป็นความท้าทายทดสอบที่คะแนนของคุณเป็นการรวมกันของความยาวของรหัสและความซับซ้อนของแบบสอบถามซึ่งหมายถึงจำนวนการโทรไปยังกระบวนการเสริม สเป็คค่อนข้างยาวดังนั้นทนกับฉัน งาน งานของคุณคือการเขียนฟังก์ชั่นที่ มีชื่อ (หรือเทียบเท่าที่ใกล้เคียงที่สุด)fที่ใช้เป็นอินพุตจำนวนเต็มบวกnและการเปลี่ยนแปลงpของnจำนวนเต็มแรกโดยใช้การทำดัชนีตาม 0 หรือ 1 pการส่งออกของมันคือการเปลี่ยนลําดับ แต่คุณจะไม่ได้รับอนุญาตให้เข้าถึงการเปลี่ยนลําดับpโดยตรง สิ่งเดียวที่คุณทำได้คือใช้มันกับเวกเตอร์ใด ๆ ของnบิต เพื่อจุดประสงค์นี้คุณจะต้องใช้ฟังก์ชั่นเสริมPที่ใช้เวลาในการเปลี่ยนแปลงpและเวกเตอร์ของบิตvและผลตอบแทนเวกเตอร์ permuted ซึ่งp[i]TH v[i]ประสานงานมีบิต ตัวอย่างเช่น: P([1,2,3,4,0], [1,1,0,0,0]) == [0,1,1,0,0] คุณสามารถแทนที่ "บิต" กับสองค่าที่แตกต่างใด ๆ เช่น3และ-4หรือ'a'และ'b'และพวกเขาไม่จำเป็นต้องได้รับการแก้ไขเพื่อให้คุณสามารถเรียกPกับทั้ง[-4,3,3,-4]และในสายเดียวกัน[2,2,2,1] fคำจำกัดความของPจะไม่ถูกนับรวมกับคะแนนของคุณ เกณฑ์การให้คะแนน ซับซ้อนแบบสอบถามPของการแก้ปัญหาของคุณกับการป้อนข้อมูลที่ได้รับเป็นจำนวนของสายมันทำให้ฟังก์ชั่นเสริม เพื่อให้การวัดนี้มีความชัดเจนโซลูชันของคุณจะต้องกำหนดขึ้น คุณสามารถใช้ตัวเลขปลอมที่สร้างขึ้นแบบสุ่มได้ แต่คุณต้องแก้ไขเมล็ดเริ่มต้นสำหรับตัวสร้าง ในพื้นที่เก็บข้อมูลนี้คุณจะพบไฟล์ชื่อpermutations.txtที่มี 505 permutations, 5 ของแต่ละความยาวระหว่าง 50 และ …

7
การพิมพ์ด้วยปุ่มสัญญาณรบกวน
เพื่อนของคุณไม่ดีกับคอมพิวเตอร์ดังนั้นเป็นเรื่องตลกในทางปฏิบัติใครบางคนกวนตัวอักษร (az) บนแป้นพิมพ์ของเขา เมื่อเขานั่งลงและพยายามพิมพ์ชื่อของเขาดูที่แป้นพิมพ์เขาก็ตระหนักว่าตัวอักษรดังกล่าวมีสัญญาณรบกวนและขอความช่วยเหลือจากคุณ คุณฉลาดเพื่อให้คุณรู้ว่าถ้าเขาพิมพ์ชื่อของเขาและจากนั้นพิมพ์ซ้ำสิ่งที่เกิดขึ้นบนหน้าจอแทนชื่อของเขาเขาจะประสบความสำเร็จในการป้อนชื่อของเขาในที่สุด คุณยังใจดีและจัดเรียงกุญแจใหม่อีกครั้ง แต่ต้องการทราบว่าจะต้องใช้เวลากี่ครั้งในการประสบความสำเร็จ งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ให้ตัวอักษรสับและชื่อของเพื่อนคำนวณจำนวนรอบ รายละเอียดการป้อนข้อมูล: มีการให้สองสตริงเป็นอินพุตในโครงสร้างที่สะดวกสำหรับภาษาของคุณ สตริงแรกคือรายการของตัวอักษรตัวพิมพ์เล็กใหม่ตามลำดับตัวอักษรของตัวอักษรเก่า (อักขระตัวแรกคือตัวอักษรที่อยู่ที่ตำแหน่งตัวอักษรตัวaสุดท้ายอยู่ที่ตำแหน่งz) การเปลี่ยนแปลงบางอย่างจะเกิดขึ้นในสตริงเสมอ สตริงที่สองคือชื่อ มันสามารถมีตัวอักษร ASCII ที่พิมพ์ได้ใด ๆ แต่ตัวอักษรตัวอักษรบนและล่างจะถูกสับถ้ามี ชื่อตัวเองอาจไม่ได้สับที่อัล รายละเอียดผลลัพธ์: เอาท์พุทเป็นจำนวนเต็มเดียวจำนวนการเลี้ยวที่ต้องการน้อยที่สุด ขึ้นบรรทัดใหม่เป็นตัวเลือก ตัวอย่าง: อินพุต: 'abcfdeghijklmnopqrstuvwxyz' 'Mr. John Doe'(d, e, f เปลี่ยนตำแหน่ง) เอาต์พุต: 3(ชื่อที่แสดงคือ: Mr. John Fod=> Mr. John Eof=> Mr. John Doe) อินพุต: 'nopqrstuvwxyzabcdefghijklm' 'Mr. John Doe'( รหัส ROT13 …

9
แปลงช่วงเวลาที่มนุษย์อ่านได้เป็นองค์ประกอบวันที่
ท้าทาย เขียนโปรแกรมที่สั้นที่สุดที่แปลงช่วงเวลาที่มนุษย์อ่านได้เป็นองค์ประกอบวันที่ของแบบฟอร์ม: {±YEARS|±MONTHS|±DAYS|±HOURS|±MINUTES|±SECONDS} กรณีตัวอย่าง แต่ละกรณีทดสอบคือสองบรรทัดอินพุตตามด้วยเอาต์พุต: 1 year 2 months 3 seconds {1|2|0|0|0|3} -2 day 5 year 8months {5|8|-2|0|0|0} 3day 9 years 4 seconds -5 minute 4 years 4 years -3seconds {17|0|3|0|-5|1} กฎระเบียบ คุณไม่สามารถใช้strtotimeหรือฟังก์ชั่นในตัวที่ทำงานได้ทั้งหมด รหัสที่สั้นที่สุดชนะ (ไบต์) คุณสามารถพิมพ์ผลลัพธ์ของคุณไปยังstdoutไฟล์หรือผลลัพธ์ก็สามารถถูกส่งกลับโดยฟังก์ชั่นมันขึ้นอยู่กับคุณ โทเค็นสามารถอยู่ในรูปเอกพจน์หรือพหูพจน์ ส่วนประกอบอาจอยู่ในลำดับแบบสุ่ม อาจไม่มีช่องว่างระหว่างหมายเลขและโทเค็น เครื่องหมายเป็นทางเลือกเมื่อช่วงเวลาเป็นค่าบวก (อินพุตและเอาต์พุต) หากส่วนประกอบปรากฏมากกว่าหนึ่งครั้งควรเพิ่มค่า แต่ละองค์ประกอบมีเครื่องหมายของตนเอง ควรจัดการส่วนประกอบแยกต่างหาก (เช่น80 minutesยังคงเป็น 80 ในเอาต์พุต) อินพุตรับประกันว่าเป็นตัวพิมพ์เล็ก มีความสุขในการเล่นกอล์ฟ!
16 code-golf  string  date 

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