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

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

14
คุณรู้จัก 'KVZ' หรือไม่?
แนวคิด คุณสามารถปีนป่ายตัวอักษรภาษาอังกฤษเพื่อที่จะยังคงสามารถร้องเพลงท่วงทำนอง Twinkle Twinkle Little Star ได้โดยไม่ทำลายการแต่งเพลง? กฎระเบียบ แลกเปลี่ยน สมมติว่าตัวอักษรที่มีอยู่ในแต่ละชุดต่อไปนี้สามารถเปลี่ยนได้อย่างอิสระโดยค่าเริ่มต้นโดยไม่ทำลายการปรับแต่ง: {A, J, K} {B, C, D, E, G, P, T, V, Z} {I, Y} {Q, U} {S, X, F} {M, N} ดังนั้น H, L, O, R และ W จึงถูกล็อคเข้าที่ เอาท์พุต โปรแกรมจำเป็นต้องส่งออกสตริง RANDOM เส้นเดียว (หรือรายการของตัวอักษร) ที่มีตัวอักษรภาษาอังกฤษที่สมบูรณ์ในลำดับใดก็ได้หากคำสั่งนั้นตรงตามเงื่อนไขข้างต้น ไม่มีทางที่คุณจะคาดเดาว่าโปรแกรมของคุณจะส่งออกสตริงใด (ถ้าเราไม่สนใจการเพาะ) หมายความว่าคุณไม่สามารถ hardcode ได้ …

23
ค้นหาสีฐานสิบหกสามหลักที่ใกล้เคียงที่สุด
ใน CSS สีสามารถระบุได้โดย "hex triplet" - เลขฐานสิบหกสามไบต์ (หกหลัก) ที่แต่ละไบต์แทนองค์ประกอบสีแดงสีเขียวหรือสีน้ำเงินของสี ยกตัวอย่างเช่นเป็นสีแดงอย่างสมบูรณ์และเทียบเท่ากับ#FF0000rgb(255, 0, 0) สีสามารถแสดงด้วยเครื่องหมายแบบย่อซึ่งใช้เลขฐานสิบหกสามหลัก การจดชวเลขจะขยายเป็นรูปแบบหกหลักโดยทำซ้ำแต่ละหลัก ยกตัวอย่างเช่นจะกลายเป็น#ABC#AABBCC เนื่องจากมีตัวเลขน้อยลงในการจดชวเลขฐานสิบหกจึงสามารถแสดงสีได้น้อยลง ความท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้รหัสสีฐานสิบหกหกหลักและส่งออกรหัสสีสามหลักที่ใกล้เคียงที่สุด นี่คือตัวอย่าง: ป้อนรหัส hex: # 28a086 องค์ประกอบสีแดง 0x28 = 40 (ทศนิยม) 0x22 = 34 0x33 = 51 0x22 ใกล้เคียงกันมากขึ้นดังนั้นรหัสแรกของรหัสสีที่สั้นลงคือ 2 องค์ประกอบสีเขียว 0xa0 = 160 0x99 = 153 0xaa = 170 0x99 ใกล้เคียงดังนั้นหลักที่สองคือ 9 …

20
ผลรวมสรุปสูงสุดกับรายการที่ไม่ติดกัน
บทนำ: แรงบันดาลใจจากทั้งสองคำถาม SO (ข้อสงสัยจากชั้นเรียนเดียวกันไม่): พิมพ์องค์ประกอบใน subarray ของจำนวนเงินสูงสุดโดยไม่องค์ประกอบที่อยู่ติดกันชวาและผลรวมสูงสุดขององค์ประกอบที่ไม่อยู่ติดกันของอาร์เรย์ที่จะพิมพ์ ท้าทาย: รับรายการจำนวนเต็มเอาต์พุตอนุกรมที่ประกอบด้วยองค์ประกอบที่ไม่อยู่ติดกันซึ่งมีผลรวมสูงสุด นี่คือตัวอย่าง: [1,2,3,-1,-3,2,5]จะส่งผลให้[1,3,5](กับผลรวมของ9) [0,2,6]ที่ดัชนี [4,5,4,3]จะส่งผลอย่างใดอย่างหนึ่ง[4,4](ที่มีผลรวมของ8) ที่ดัชนี 0-based [0,2]หรือ[5,3](ยังมีผลรวมของ8) [1,3]ที่ดัชนี [5,5,10,100,10,5]จะส่งผลให้[5,100,5](ที่มีผลรวมของ110) ที่ทั้งดัชนี 0-based หรือ[0,3,5][1,3,5] สิ่งที่สำคัญที่สุดเกี่ยวกับตัวอย่างเหล่านี้ข้างต้นดัชนีที่มีองค์ประกอบอย่างน้อย 2 แยกจากกัน ถ้าเราดูตัวอย่าง[5,5,10,100,10,5]ในเชิงลึกมากขึ้น: เรามีการเรียงลำดับที่มีศักยภาพต่อไปนี้ที่มีรายการที่ไม่ติดกัน พร้อมดัชนีด้านล่าง ด้วยผลรวมของพวกเขาด้านล่างว่า: [[5],[10],[100],[10],[5],[5],[100,5],[10,5],[10,10],[5,5],[5,10],[5,100],[5,5],[5,10],[5,100],[5,10],[5,100,5],[5,100,5],[5,10,5],[5,10,10]] // non-adjacent subsequences [[5],[ 4],[ 3],[ 2],[1],[0],[ 3,5],[ 2,5],[ 2, 4],[1,5],[1, 4],[1, 3],[0,5],[0, 4],[0, 3],[0, 2],[1, 3,5],[0, 3,5],[0, 2,5],[0, 2, 4]] …

3
เส้นทางแห่ง Wildebeest
เล่นกอล์ฟโปรแกรมหรือฟังก์ชั่นที่ให้ตำแหน่งของwildebeestที่เริ่มต้นที่สแควร์บนกระดานหมากรุกที่ไม่มีที่สิ้นสุดซึ่งมีหมายเลขอยู่ในเกลียวตารางทวนเข็มนาฬิกาที่ซึ่ง wildebeest มักจะไปที่ตารางเลขต่ำสุด เธอสามารถเข้าถึงที่เธอยังไม่ได้เยี่ยมชมnthnTHn^{\text{th}}111 แรงบันดาลใจ: ติดอัศวินและOEIS A316667 แก้ไข: ลำดับนี้ขณะนี้อยู่ใน OEIS เป็นA323763 รหัสอาจสร้างที่ตั้งตำแหน่งแรกหรือสร้างลำดับโดยไม่มีการป้อนข้อมูลnthnTHn^{\text{th}}nnn รู้สึกอิสระที่จะให้สถานที่ตั้งของเธอหลังจากที่ (หรือขึ้นไป)กระโดดแทน แต่ถ้าดังนั้นโปรดรัฐนี้ได้อย่างชัดเจนในคำตอบของคุณและให้แน่ใจว่าการป้อนข้อมูลของอัตราผลตอบแทน(หรือถ้าเหมาะสม)nnnn=0n=0n=01[1] นี่คือโค้ดกอล์ฟดังนั้นจุดมุ่งหมายคือการสร้างโค้ดที่ใช้งานได้ในไม่กี่ไบต์ในภาษาที่คุณเลือก หมายเหตุ: ครืนติดหนึบ (เหมือนอัศวินไม่ที่เขาสถานที่, ตารางและอูฐไม่ที่เขาสี่เหลี่ยม ) ที่เธอตำแหน่งบนตาราง12851850258พฤติกรรมของรหัสของคุณอาจไม่ได้กำหนดไว้สำหรับใหญ่กว่านี้ (ขอบคุณ Deadcode สำหรับรหัส C ++ที่พบสิ่งนี้!)2016th2016th2016^{\text{th}}2084208420843723rd3723rd3723^{\text{rd}}70817081708112899744968th12899744968th12899744968^{\text{th}}128518502581285185025812851850258nnn รายละเอียด กระดานดูเหมือนด้านล่างและดำเนินต่อไปเรื่อย ๆ : 101 100 99 98 97 96 95 94 93 92 91 102 65 64 63 62 61 60 59 …

22
สลับสวิตช์บางตัวบนสวิตช์บอร์ด
แรงบันดาลใจจากความท้าทายนี้นี้ เป้าหมาย: รับสวิตช์บอร์ดที่กำหนดค่าไว้ล่วงหน้าและรายการของดัชนีสลับกลับไปที่ดัชนีที่กำหนด สวิตช์บอร์ดประกอบไปด้วยสวิตช์จำนวนหนึ่ง ( vหรือ^) ที่พัน-กันและจัดเรียงเป็นแถวที่มีความยาวต่างกัน นี่คือตัวอย่างสวิตช์บอร์ด: -v-^-v- -^-v- -v-^-v- ในการสลับกลับ / พลิกสวิตช์หมายถึงการเปลี่ยนจากvเป็น^หรือจาก^เป็นvไป สวิตช์ถูกทำดัชนีจากซ้ายไปขวา, จากบนลงล่าง เช่นในตัวอย่างด้านบนสุดท้ายvในแถวแรกจะอยู่ในตำแหน่งที่ 3 และ^ในแถวกลางจะอยู่ที่ 4 (โดยใช้การจัดทำดัชนี 1) การป้อนข้อมูล: สตริง (หรือรายการสตริง) ที่แสดงถึงสวิตช์บอร์ด มันมีการประกันเพื่อให้ตรงกับ ((-[v^])+-)(\n(-[v^])+-)*regex รายการหมายเลขว่างที่อาจเป็นตัวแทนดัชนีอาจเป็น 0 หรือ 1 (หรือบางหมายเลขก็ได้ถ้าคุณต้องการ) จัดทำดัชนี นี่คือสวิตช์ที่จำเป็นต้องพลิก เอาท์พุท: สวิตช์บอร์ดในรูปร่างเดียวกับอินพุตพร้อมกับสวิตช์ที่ระบุกลับด้าน สวิตช์ที่ไม่ระบุใด ๆ ควรรักษาสถานะเริ่มต้น กฎ: การป้อนข้อมูลจะถูกจัดรูปแบบอย่างถูกต้องเสมอและไม่มีดัชนีใดที่ให้มาเกินขอบเขต รายการดัชนีจะถูกจัดเรียงและจะไม่มีการทำซ้ำ ระบุคำตอบที่คุณใช้ในการจัดทำดัชนีไม่ว่าจะเป็น 0, 1 หรือบางข้อก็ได้ ช่องว่างต่อท้ายนั้นใช้ได้ตราบใดที่เอาต์พุตดูเหมือนอินพุต นี่คือรหัส - …

18
การยุบตัวเลข
ลองกำหนดฟังก์ชั่นกับจำนวนธรรมชาติnnnซึ่งเขียนเป็นฐาน 10 หลักdkdk - 1...d1d0dkdk−1…d1d0d_k\; d_{k-1}\; \dotsc\; d_1\; d_0ดังนี้: ตราบใดที่มีตัวเลขที่อยู่ติดกันเท่ากับdผมdฉัน- 1didi−1d_i\;d_{i-1} , แทนที่ด้วยผลรวมdผม+ dฉัน- 1di+di−1d_i+d_{i-1}จากซ้ายไปขวา หากมีตัวเลขดังกล่าวให้ทำซ้ำขั้นตอนเดียวกัน กล่าวอีกนัยหนึ่งในการทำซ้ำแต่ละครั้งเราจะนำตัวเลขที่อยู่ติดกันทุกคู่และแทนที่ด้วยผลรวมของพวกเขาในเวลาเดียวกัน (ใช้คู่ซ้ายสุดหากพวกเขาทับซ้อนกัน) ตัวอย่าง ลอง99889988\texttt{9988}ตัวอย่าง: ตัวเลขที่อยู่ติดกันเป็นครั้งแรกซึ่งเท่ากับเป็นสอง99\texttt{9} ดังนั้นเราจึงแทนที่พวกมันด้วย9 + 9 = 189 + 9=18\texttt{9 + 9} = \texttt{18}ซึ่งให้เรา18881888\texttt{1888} เนื่องจากเรายังคงอยู่ในการสำรวจเส้นทางซ้ายขวาครั้งแรกและยังมีสอง88\texttt{8}วินาทีเราจึงต้องแทนที่สิ่งเหล่านี้ก่อน เราจึงได้18161816\texttt{1816} มีบางอย่างเปลี่ยนแปลงไปดังนั้นเราต้องทำซ้ำอีกครั้ง แต่ไม่มีตัวเลขดังกล่าวดังนั้นเราจึงหยุด ดังนั้น9988TH9988th9988^\text{th}ตัวเลขในลำดับที่เป็น1816181618161816 ท้าทาย 200 คำแรกคือ: 0,1,2,3,4,5,6,7,8,9,10,2,12,13,14,15,16,17,18,19,20,21,4,23,24,25,26,27,28,29,30,31,32,6,34,35,36,37,38,39,40,41,42,43,8,45,46,47,48,49,50,51,52,53,54,10,56,57,58,59,60,61,62,63,64,65,12,67,68,69,70,71,72,73,74,75,76,14,78,79,80,81,82,83,84,85,86,87,16,89,90,91,92,93,94,95,96,97,98,18,10,101,102,103,104,105,106,107,108,109,20,21,4,23,24,25,26,27,28,29,120,121,14,123,124,125,126,127,128,129,130,131,132,16,134,135,136,137,138,139,140,141,142,143,18,145,146,147,148,149,150,151,152,153,154,20,156,157,158,159,160,161,162,163,164,165,4,167,168,169,170,171,172,173,174,175,176,24,178,179,180,181,182,183,184,185,186,187,26,189,190,191,192,193,194,195,196,197,198,28 งานของคุณคือสร้างลำดับนั้น กำหนดnnnส่งคืนหมายเลขnTHnthn^\text{th}ในลำดับนั้น กำหนดnnnส่งคืนหมายเลขnnnแรกในลำดับนั้น หรือสร้างลำดับอย่างไม่มีกำหนด คุณสามารถเลือกการส่งของคุณเพื่อใช้000 - หรือ111 -exexing แต่โปรดระบุว่า …

17
สมบัติที่แท้จริงคือตัวเลขที่เราทำระหว่างทาง
งานของคุณคือการเขียนโปรแกรมฟังก์ชั่นหรือตัวอย่าง (ใช่ได้รับอนุญาตตัวอย่าง) ที่เพียงแค่ส่งออกจำนวนเต็ม อย่างไรก็ตามคุณจะต้องสามารถแยกการส่งของคุณออกเป็นคำนำหน้าที่ยังผลิตจำนวนเต็มที่แตกต่างกัน คุณไม่สามารถใช้ไบต์ใด ๆ ที่ปรากฏในคำนำหน้าก่อนหน้า ตัวอย่างเช่นเราสามารถมีคำนำหน้า: 1 # 1 (Now we can't use 1) 1-6 # -5 (Now we can't use - or 6) 1-6/3 # -1 (Now we can't use / or 3) 1-6/3+0xA # 9 Final submission กฎระเบียบ เป้าหมายของคุณคือการสร้างเพื่อลองและสร้างจำนวนเต็มที่ไม่ซ้ำกันมากที่สุดในขณะที่ทำให้พวกเขาใกล้เคียงกับศูนย์ ระบบการให้คะแนนคือ((number of unique integers)**3)/(sum of absolute values)เมื่อคะแนนของคุณสูงขึ้นเท่าไหร่ …

19
อะนาล็อกเป็นป้าน!
นาฬิกาอะนาล็อกมี 2 เข็ม *: ชั่วโมงและนาที มือเหล่านี้วงกลมหน้าปัดนาฬิกาเมื่อเวลาผ่านไป การหมุนของเข็มนาทีเต็มรูปแบบจะส่งผลให้ 1/12 ของการหมุนของเข็มชั่วโมง 2 รอบการหมุนของเข็มชั่วโมงหมายถึงวันเต็ม เนื่องจากมือเหล่านี้จับจ้องที่จุดศูนย์กลางเดียวกันและหมุนไปรอบ ๆ จุดนั้นคุณสามารถคำนวณมุมระหว่างมือได้เสมอ ในความเป็นจริงมี 2 มุมในเวลาที่กำหนด; อันที่ใหญ่กว่าและอันที่เล็กกว่า (บางครั้งทั้งคู่จะเท่ากับ 180 แต่นั่นไม่สำคัญ) * นาฬิกาสมมุติของเราไม่มีเข็มวินาที งาน ให้เวลาในรูปแบบ 24 ชั่วโมงเอาท์พุทมุมที่เล็กกว่าระหว่างมือเป็นองศา ถ้ามืออยู่ตรงข้ามกัน (เช่น at 6:00, 18:00etc) เอาต์พุต 180 กฎระเบียบ ป้อนข้อมูลอาจถูกนำมาเป็น: - ตัวคั่นแยกสตริง: 6:32, 14.26 - 2 ค่าแยกต่างหากหรือสตริง ints: 6, 32, 14, 26 - อาร์เรย์ของ …
23 code-golf  math  number  date 

11
ดิสก์ Integer ที่เล็กที่สุด
ความท้าทายนี้เกี่ยวกับการค้นหาดิสก์ขนาดเล็กที่สุดที่มีบางจุดที่กำหนด สิ่งนี้ทำให้ค่อนข้างยุ่งยากอย่างไรก็ตามจากข้อเท็จจริงที่ว่าในความท้าทายนี้พิกัดและรัศมีของดิสก์ต้องเป็นจำนวนเต็ม การป้อนข้อมูลของคุณจะเป็นรายการของจุดที่มีพิกัดจำนวนเต็มและx yคุณสามารถใช้สิ่งนี้เป็นรายการของสิ่งอันดับรายการรายชื่อหรือวิธีอื่นใดเพื่อแสดงชุดของคู่ xและyจะเป็นจำนวนเต็ม (อาจเป็นลบ) ทุกจุดรับประกันว่าจะไม่ซ้ำกันและจะมีอย่างน้อยหนึ่งจุด การส่งออกของคุณจะเป็นดิสก์ในรูปแบบของสามตัวเลขX, และY ,, และเป็นจำนวนเต็มทั้งหมดและแทนจุดศูนย์กลางของดิสก์และแสดงถึงรัศมี ระยะห่างระหว่างจุดที่กำหนดทุกจุดและจุดศูนย์กลางจะต้องน้อยกว่าหรือเท่ากับและจะต้องไม่มีดิสก์ดังกล่าวที่มีขนาดเล็กลงซึ่งเป็นไปตามเงื่อนไขนี้RXYRXYRRR เป็นไปได้ว่าจะมีวิธีแก้ไขที่เป็นไปได้หลายอย่างสำหรับการป้อนข้อมูลที่กำหนดรหัสของคุณจะต้องแสดงผลอย่างน้อยหนึ่งรายการในกรณีนี้ คุณสามารถใช้รูปทรงเรขาคณิตที่มีอยู่ภายในภาษาของคุณรองรับหากมีและอินพุต / เอาท์พุตอาจผ่านวัตถุจุด / ดิสก์ในตัวแทนที่จะเป็นตัวเลข กรณีทดสอบ Input (Possible) Output(s) (x,y) (X,Y,R) ------------------------- (0,0) (0,0,0) ------------------------- (0,1) (0,0,1) (1,0) (1,1,1) ------------------------- (1,4) (4,4,3) (3,2) (4,1) (4,5) (5,2) (7,4) ------------------------- (-1,0) (0,0,2) (2,0) (1,0,2) ------------------------- (-1,0) (1,0,2) (2,1) (0,1,2) …

24
โจร: สตริงย่อย OEIS ที่ซ่อนอยู่
นี่คือความท้าทาย Cops and Robbers นี่คือเธรดของโจร ด้ายของตำรวจอยู่ที่นี่ ตำรวจจะเลือกลำดับใด ๆ จากOEISและเขียนโปรแกรมpที่พิมพ์จำนวนเต็มแรกจากลำดับนั้น พวกเขายังจะได้พบกับบางสตริงs หากคุณใส่sที่ไหนสักแห่งที่เข้าสู่หน้าโปรแกรมนี้จะต้องพิมพ์เลขที่สองจากลำดับ หากคุณแทรกs + sลงในตำแหน่งเดียวกันในpโปรแกรมนี้จะต้องพิมพ์จำนวนเต็มที่สามจากลำดับ s + s + sในตำแหน่งเดียวกันจะพิมพ์ที่สี่เป็นต้นไปเรื่อย ๆ นี่คือตัวอย่าง: Python 3 ลำดับA000027 print(1) สตริงซ่อนเป็นไบต์ที่สอง สตริงคือ+1เนื่องจากโปรแกรมprint(1+1)จะพิมพ์จำนวนเต็มที่สองใน A000027 โปรแกรมprint(1+1+1)จะพิมพ์จำนวนเต็มที่สามเป็นต้น ตำรวจต้องเปิดเผยลำดับโปรแกรมเดิมPและความยาวของสตริงที่ซ่อนs โจรแตกส่งโดยการหาสตริงใดขึ้นอยู่กับความยาวที่และสถานที่ที่จะแทรกเพื่อสร้างลำดับ สตริงไม่จำเป็นต้องตรงกับโซลูชันที่ต้องการให้เป็นรอยแตกที่ถูกต้องและไม่ได้แทรกตำแหน่งไว้ หากคุณถอดรหัสตำรวจคนใดคนหนึ่งตอบโพสต์โซลูชั่นของคุณ (ด้วยสตริงที่ซ่อนอยู่และสถานที่เปิดเผย) และลิงค์ไปยังคำตอบ จากนั้นแสดงความคิดเห็นในคำตอบของตำรวจพร้อมลิงก์ไปยังช่องโหว่ของคุณที่นี่ กฎระเบียบ โซลูชันของคุณจะต้องทำงานกับหมายเลขใด ๆ ในลำดับหรืออย่างน้อยก็จนกว่าข้อ จำกัด ที่เหมาะสมซึ่งจะล้มเหลวเนื่องจากข้อ จำกัด ของหน่วยความจำจำนวนเต็ม / สแต็คล้นเป็นต้น โจรผู้ชนะคือผู้ใช้ที่ถอดรหัสสิ่งที่ได้รับความนิยมมากที่สุดโดยผู้ที่เข้ามาถึงจำนวนรอยร้าวนั้นจะถึงที่ก่อน ตำรวจชนะคือตำรวจกับที่สั้นที่สุดสตริงsที่ไม่ได้แตก tiebreaker เป็นที่สั้นที่สุดพี …

25
จัดเรียงตามตัวเลขที่ใหญ่ที่สุด
ท้าทาย: รับรายการจำนวนเต็มเรียงจากมากไปน้อยหลักเดียวของพวกเขา คำสั่งซื้อสำหรับตัวเลขที่มีตัวเลขที่ใหญ่ที่สุดเหมือนกันจะถูกจัดเรียงตามตัวเลขที่ใหญ่ที่สุดที่สองเป็นต้น เราไม่สนใจตัวเลขที่ซ้ำกันในตัวเลข และหากตัวเลขทั้งหมดในตัวเลขเหมือนกันลำดับของตัวเลขเหล่านั้นในรายการอาจเป็นไปได้ทุกอย่างตามที่คุณต้องการ ตัวอย่าง: Input: [123, 478, -904, 62778, 0, -73, 8491, 3120, 6458, -7738, 373] Possible outputs: [8491, -904, 62778, 478, -7738, 6458, 373, -73, 3120, 123, 0] [8491, -904, 62778, 478, -7738, 6458, -73, 373, 3120, 123, 0] ทำไม? นี่คือตัวเลขที่เกี่ยวข้องที่ตัวเลขถูกเรียงบน: Output: [8491, -904, 62778, 478, -7738, …

16
เค้กชิ้นหนึ่งให้ฉัน
วันเกิดของฉันคือหนึ่งเดือนและนี่เป็นเค้กแสนอร่อยชิ้นหนึ่ง .-""-. .-" "-. |""--.. "-. | ""--.. "-. |""--.. ""--..\ | ""--.. | | ""--..| ""--.. | ""--.. | ""--..| ในจำนวนไบต์น้อยที่สุดสร้างเค้กชิ้นนี้ให้ฉัน คุณสามารถพิมพ์ไปที่ STDOUT หรือส่งคืนเป็นผลลัพธ์ของฟังก์ชัน สามารถยอมรับช่องว่างที่ไม่เกี่ยวข้องใด ๆ ได้ตราบใดที่อักขระมีการจัดเรียงอย่างเหมาะสม กฎและ I / O ไม่มีอินพุต การส่งออกจะได้รับโดยวิธีการที่สะดวกใด ๆ ยอมรับได้ทั้งโปรแกรมหรือฟังก์ชั่น ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม นี่คือรหัส - กอล์ฟเพื่อให้ใช้กฎการเล่นกอล์ฟตามปกติทั้งหมดและรหัสที่สั้นที่สุด (เป็นไบต์) ชนะ

15
เกมไขปริศนาครึ่งวงกลม
Palindrome เป็นคำที่ตรงกันข้ามกัน ขณะนี้มีคำบางคำที่อาจมีลักษณะเหมือน palindromes แต่ไม่ใช่ ยกตัวอย่างเช่นพิจารณาคำ sheesh, sheeshไม่ palindrome เพราะเป็นสิ่งที่ตรงกันข้ามของมันhseehsซึ่งเป็นที่แตกต่างกัน แต่ถ้าเราพิจารณาให้เป็นตัวอักษรเดียวแล้วก็กลับเป็นsh sheeshคำชนิดนี้เราจะเรียกว่าเซมิโคลอน โดยเฉพาะคำหนึ่งคำคือกึ่ง Palindrome หากเราสามารถแบ่งคำนั้นออกเป็นชิ้น ๆ จำนวนหนึ่งเช่นเมื่อคำสั่งของชิ้นนั้นกลับคำเดิมจะเกิดขึ้น (สำหรับsheeshชิ้นส่วนเหล่านั้นsh e e sh) เราจะต้องไม่มีชิ้นที่มีตัวอักษรจากครึ่งทั้งสองของคำ (มิฉะนั้นทุกคำจะเป็นกึ่ง Palindrome) ตัวอย่างเช่นrearไม่ใช่กึ่ง Palindrome เพราะr ea rมีอัน ( ea) ที่มีตัวอักษรจากทั้งสองด้านของคำเดิม เราพิจารณาอักขระกลางในคำที่มีความยาวคี่ให้อยู่ด้านใดด้านหนึ่งของคำดังนั้นสำหรับคำที่มีความยาวคี่อักขระกลางจะต้องอยู่ในกลุ่มของมันเสมอ งานของคุณจะทำรายการของจำนวนเต็มบวกและตรวจสอบว่าพวกเขาเป็นกึ่ง Palindrome รหัสของคุณควรส่งออกค่าไม่เท่ากันที่สอดคล้องกันสองค่าหนึ่งค่าหากอินพุตเป็นแบบกึ่ง Palindrome และอีกค่าหนึ่ง อย่างไรก็ตามลำดับไบต์ของรหัสของคุณจะต้องเป็นกึ่ง palindrome-ตัวเอง คำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์ที่น้อยลง การทดสอบกรณี [] -> True [1] -> True [2,1,2] -> …

10
คำนวณทิปโดยใช้จำนวนเหรียญที่น้อยที่สุด
แอพเครื่องคิดเลขทิปส่วนใหญ่คิดราคาอาหารเพียงเล็กน้อย ตัวอย่างเช่นหากมื้ออาหารของคุณคือ 23.45 เหรียญคุณสามารถฝาก 15% เคล็ดลับ = $ 3.52 หรืออีก 20% เคล็ดลับ = $ 4.69 สะดวกเพียงพอสำหรับผู้ใช้บัตรเครดิต แต่ไม่เป็นเช่นนั้นหากคุณต้องการฝากเคล็ดลับเงินสดซึ่งในกรณีนี้จำนวนเงินที่ได้จากการจับคู่ลูกบอลเหล่านี้จะเข้าทาง ดังนั้นขอแก้ไขความคิดให้สะดวกยิ่งขึ้นสำหรับผู้ใช้เงินสด การมอบหมายของคุณ เขียนโปรแกรมหรือฟังก์ชั่นที่รับเป็นอินพุต: ในไม่กี่ไบต์ ราคาของอาหาร เปอร์เซ็นต์เคล็ดลับขั้นต่ำ เปอร์เซ็นต์เคล็ดลับสูงสุด และส่งออกจำนวนเงินทิปใด ๆ ในช่วง [ราคา * min_percentage / 100, ราคา * max_percentage / 100] ที่ลดจำนวนตั๋วเงิน / ธนบัตรและเหรียญที่ต้องการให้น้อยที่สุด สมมติว่าสกุลเงินของสหรัฐฯคือ 1 ¢, 5 ¢, 10 ¢, 25 ¢, $ …
23 code-golf 

10
สั้นที่สุดระบุสารตั้งต้น
รับรายการสตริงแทนที่แต่ละสตริงด้วยหนึ่งในสตริงย่อยที่ไม่ว่างซึ่งไม่ใช่สตริงย่อยของสตริงอื่นใดในรายการและสั้นที่สุดเท่าที่จะทำได้ ตัวอย่าง ได้รับรายการ["hello","hallo","hola"], "hello"ควรจะถูกแทนที่โดยเพียงแค่"e"เป็น substring นี้ไม่ได้มีอยู่ใน"hallo"และ"hola"และมันก็เป็นที่สั้นที่สุด "hallo"จะถูกแทนที่ด้วยอย่างใดอย่างหนึ่ง"ha"หรือ"al"และ"hola"โดยใด ๆ ของ"ho", หรือ"ol""la" กฎระเบียบ คุณสามารถสันนิษฐานได้ว่าสตริงนั้นจะต้องไม่ว่างเปล่าและมีอักขระที่เป็นตัวอักษรของเคสเดียวกันเท่านั้น คุณสามารถสันนิษฐานได้ว่ามีสตริงย่อยดังกล่าวอยู่ในแต่ละสตริงในรายการนั่นคือไม่มีสตริงใดในรายการที่จะเป็นสตริงย่อยของสตริงอื่น ๆ อินพุตและเอาต์พุตสามารถอยู่ในรูปแบบที่เหมาะสม นี่คือโค้ดกอล์ฟดังนั้นพยายามใช้ให้น้อยที่สุดในภาษาที่คุณเลือก กรณีทดสอบ มีเพียงหนึ่งเอาต์พุตที่เป็นไปได้สำหรับกรณีส่วนใหญ่ ["ppcg"] -> ["p"] (or ["c"] or ["g"]) ["hello","hallo","hola"] -> ["e","ha","ho"] ["abc","bca","bac"] -> ["ab","ca","ba"] ["abc","abd","dbc"] -> ["abc","bd","db"] ["lorem","ipsum","dolor","sit","amet"] -> ["re","p","d","si","a"] ["abc","acb","bac","bca","cab","cba"] -> ["abc","acb","bac","bca","cab","cba"] เกี่ยวข้อง: สตริงย่อยที่ระบุสั้นที่สุด - แนวคิดที่คล้ายกัน แต่มีกฎที่เกี่ยวข้องมากกว่าและรูปแบบที่ยุ่งยาก
23 code-golf  string  code-golf  string  code-golf  array-manipulation  code-golf  quine  code-golf  array-manipulation  integer  matrix  classification  code-golf  quine  code-golf  string  matrix  conversion  code-golf  string  number  code-golf  string  code-golf  number  sequence  integer  code-golf  decision-problem  matrix  code-golf  string  code-golf  math  code-golf  math  array-manipulation  combinatorics  code-golf  random  code-golf  code-golf  alphabet  code-golf  python  c  code-golf  base-conversion  code-golf  string  counting  code-challenge  code-generation  fastest-code  code-golf  kolmogorov-complexity  matrix  code-golf  string  code-golf  array-manipulation  decision-problem  random  sudoku  code-golf  chess  code-golf  card-games  encode  code-golf  decision-problem  code-golf  code-golf  math  array-manipulation  matrix 

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