คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

30
ค้นหาคำนำหน้าและทำรายการคำต่อท้ายทั้งหมดในข้อความ
ฉันใช้ "คำต่อท้าย" ที่นี่อย่างอิสระเพื่อหมายถึง "สตริงย่อยใด ๆ ที่ตามหลังคำนำหน้า" "คำนำหน้า" ที่นี่หมายถึงการเริ่มต้นของคำที่คำเริ่มต้นถูกกำหนดให้เป็นหลังช่องว่างหรือจากอักขระตัวแรกของข้อความที่ป้อน (สำหรับคำแรก) "คำนำหน้า" ในช่วงกลางของคำจะถูกละเว้น เช่นถ้าคำนำหน้าการป้อนข้อมูลของคุณคือ "แขน" และข้อความอินพุตคือ "กองทัพของดัมเบิลดอร์มีอาวุธครบมือสำหรับอาร์มาเก็ดดอนที่กำลังจะมา" ดังนั้นรายการเอาท์พุทจะมี (y, ed, ageddon) กรณีทดสอบ ถือว่าเป็นกรณี ๆ ไปสตริงสิ้นสุดลงหลังจากช่องว่าง อินพุตจะไม่ขึ้นต้นด้วยช่องว่าง การลบรายการที่ซ้ำกันเป็นทางเลือก Input prefix: "1" Input text: "He1in aosl 1ll j21j 1lj2j 1lj2 1ll l1j2i" Output: (ll, lj2j, lj2) - in any permutation Input prefix: "frac" Input …

16
นับจำนวนครั้ง
แรงบันดาลใจจากสถานการณ์ในชีวิตจริงซึ่งฉันได้ขอคำตอบจากที่นี่: /superuser/1312212/writing-a-formula-to-count-how-many-times-each-date- ปรากฏใน-a-ชุดจากวันที่วิ่ง กำหนดอาร์เรย์ของ timespans (หรือคู่ startdate-enddate) ให้นับจำนวนครั้งที่ครอบคลุมกี่ครั้งต่อวันสำหรับทุกวันในช่วงทั้งหมด ตัวอย่างเช่น: # Start End 1 2001-01-01 2001-01-01 2 2001-01-01 2001-01-03 3 2001-01-01 2001-01-02 4 2001-01-03 2001-01-03 5 2001-01-05 2001-01-05 รับข้อมูลข้างต้นผลลัพธ์ควรเป็นดังนี้: 2001-01-01: 3 (Records 1,2,3) 2001-01-02: 2 (Records 2,3) 2001-01-03: 2 (Records 2,4) 2001-01-04: 0 2001-01-05: 1 (Record 5) คุณจะต้องส่งออกการนับสำหรับแต่ละวัน (ตามลำดับเรียงลำดับที่เก่าแก่ที่สุด); ไม่ใช่ระเบียนที่จะปรากฏ คุณสามารถสมมติได้ว่าแต่ละช่วงเวลามีเฉพาะวันที่เท่านั้นไม่ใช่เวลา …
17 code-golf  date 


7
การคูณ Nim
พื้นหลัง หากคุณเล่นกอร์ดโค้ดมากคุณอาจทราบถึงการดำเนินการXOR ระดับบิต กำหนดจำนวนเต็มสองตัวมันให้จำนวนเต็มอีกตัวที่มี1s ในบิตที่อินพุตทั้งสองแตกต่างกัน ตัวอย่างเช่น1010 XOR 0011 = 1001. ดูเหมือนจะมีประโยชน์มากในทฤษฎีเกมซึ่งเป็นที่รู้จักกันดีในชื่อ "nim sum" หากคุณมีผลรวมของสองเกม (นั่นคือคุณกำลังเคลื่อนไหวในเกมหนึ่งครั้ง) ค่าของตำแหน่งคือผลรวม nim ของค่าของตำแหน่งในแต่ละเกม แต่เราสามารถก้าวไปอีกขั้น ด้วยการเพิ่ม nim และนิยามที่เหมาะสมของการคูณ nimเราสามารถสร้างเขตข้อมูลจากจำนวนเต็มที่ไม่ใช่ค่าลบ ดังนั้นความท้าทายคือการคูณกอล์ฟ คำนิยาม การทวีคูณของ Nim เป็นไปตามกฎต่อไปนี้: ผลิตภัณฑ์ nim ของ Fermat 2-power n = (2 ^ (2 ^ k)) ที่มีจำนวนน้อยกว่าเป็นผลิตภัณฑ์สามัญ ผลิตภัณฑ์ nim ของ Fermat 2-power n ด้วยตัวมันเองคือ 3n / …
17 code-golf  math 

24
รับขั้นตอนตามลำดับ
ท้าทาย กำหนดลำดับของตัวเลขให้สร้างฟังก์ชั่นที่คืนค่าลำดับขั้นตอน สมมติว่าลำดับจะเป็น N >= 3 ลำดับจะทำซ้ำขั้นตอนอย่างน้อยหนึ่งครั้ง ลำดับจะมีตัวเลขตามธรรมชาติเท่านั้น ฟังก์ชั่นหรือโปรแกรมของคุณควรกลับลำดับขั้นตอนที่สั้นที่สุดที่เป็นไปได้ ตัวอย่าง: การป้อนข้อมูล: [1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15, 17] เอาท์พุท: [1, 1, 2] คำอธิบาย:1 => 2 (1 step), 2 => 3 (1 step), 3 => 5 (2 steps)ลำดับเริ่มต้นไปจาก จากนั้นมันจะเกิดซ้ำ ผลลัพธ์ก็คือ[1 step, 1 step, 2 steps] …

12
คลิปบอร์ดฟังก์ชั่น: คัดลอก
ความท้าทายนี้จะเกี่ยวข้องกับบางส่วนของคุณสมบัติภาษา MATL ที่เป็นส่วนหนึ่งของพฤษภาคม 2018 ภาษาของเดือนเหตุการณ์ ที่เกี่ยวข้องกับความท้าทาย : คลิปบอร์ดฟังก์ชั่น: วาง บทนำ MATL มีหลายคลิปบอร์ดซึ่งคุณสามารถจัดเก็บค่า (คัดลอก) เพื่อเรียกคืนได้ในภายหลัง (วาง) บางคลิปบอร์ดเป็นแบบอัตโนมัติซึ่งหมายความว่าการคัดลอกจะถูกทริกเกอร์โดยอัตโนมัติจากเหตุการณ์บางอย่าง ความท้าทายนี้จะเน้นที่หนึ่งใน clipbards อัตโนมัติที่เรียกว่าคลิปบอร์ดฟังก์ชั่นอินพุตหรือเพียงฟังก์ชั่นคลิปบอร์ด คลิปบอร์ดนี้จัดเก็บอินพุตไปยังการโทรล่าสุดทั้งสี่ไปยังฟังก์ชั่นถ่ายภาพปกติ ฟังก์ชั่นปกติเป็นประเภทที่พบมากที่สุดของฟังก์ชั่นใน MATL การรับข้อมูลหมายความว่าฟังก์ชั่นรับอินพุตอย่างน้อยหนึ่งฟังก์ชั่น (ฟังก์ชั่นที่ไม่มีการป้อนข้อมูลใด ๆ จะไม่ได้รับการพิจารณาโดยคลิปบอร์ดฟังก์ชั่น) นี่เป็นการอธิบายที่ดีที่สุดด้วยตัวอย่างต่อไปนี้ซึ่งใช้สองฟังก์ชั่นปกติ: +ซึ่งปรากฏตัวเลขสองตัวจากสแต็กและเพิ่มผลรวมของพวกเขา Uซึ่งจะปรากฏตัวเลขหนึ่งและผลักสแควร์ของมัน ตัวอย่างที่ 1 : 3 2 + 6 + 12 4 U + + ก่อ39ผล รหัสถูกตีความดังนี้: จำนวนตัวอักษรเช่น3หรือ12ถูกผลักไปที่สแต็ก ฟังก์ชั่นเช่น+ป๊อปอินพุทและดันเอาต์พุตไปยังสแต็ก การเรียกใช้ฟังก์ชันตามลำดับเวลาคือ: 3 2 + …
17 code-golf  number 

26
น้ำตาลทรายยาอายุวัฒนะ
ใน Elixir รายการ (ที่เชื่อมโยง) อยู่ในรูปแบบ[head | tail]ที่ส่วนหัวสามารถเป็นอะไรก็ได้และtailเป็นรายการของส่วนที่เหลือของรายการและ[]- รายการที่ว่างเปล่า - เป็นข้อยกเว้นเพียงอย่างเดียว รายการสามารถเขียนได้เช่นเดียวกับ[1, 2, 3]ที่เทียบเท่า[1 | [2 | [3 | []]]] งานของคุณคือการแปลงรายการตามที่อธิบายไว้ ข้อมูลที่ป้อนจะเป็นรายการที่ถูกต้อง (ใน Elixir) ที่มีเฉพาะตัวเลขที่ตรงกับ regex\[(\d+(, ?\d+)*)?\]regex คุณสามารถรับอินพุตด้วย (หนึ่งช่องว่างหลังจากแต่ละเครื่องหมายจุลภาค) หรือไม่มีช่องว่าง เอาต์พุตอาจมี (หนึ่งช่องว่างก่อนและหลังแต่ละ|ช่อง) หรือไม่มีช่องว่าง สำหรับอินพุตที่มีเลขศูนย์นำหน้าคุณสามารถส่งออกโดยไม่มีเลขศูนย์หรือด้วย อินพุตต้องถูกใช้เป็นสตริง (หากเขียนฟังก์ชัน) เช่นเดียวกับเอาต์พุต ตัวอย่าง [] -> [] [5] -> [5 | []] [1, 7] -> [1 | …

4
อักขระข้ามตัวอักษร
พื้นหลัง ฉันเห็น Venn Diagram ที่น่าสนใจในวิกิพีเดีย: https://simple.wikipedia.org/wiki/Alphabet#/media/File:Venn_diagram_gr_la_ru.svg มันแสดงให้เห็นตัวอักษร (รูปร่างทางกายภาพ) ในตัวอักษรที่แตกต่างกันที่มีร่วมกันระหว่างตัวอักษรรัสเซีย, กรีกและละติน ความท้าทาย กำหนดสตริงอินพุตของอักขระจากสคริปต์ทั้งสามที่แสดง (เช่นตัวอักษรกรีกตัวอักษร Cyrillic หรือตัวอักษรละติน) ส่งออกเปอร์เซ็นต์ของสตริงที่ตรงกับแต่ละภาษา นับตัวอักษรซ้ำ ๆ ทุกครั้ง ยกตัวอย่างเช่นเป็นตัวอักษรละตินเท่านั้นดังนั้นผลลัพธ์คือFFLURSFFLURS is 100% Latin, 0% Cyrillic and 0% Greek ในทางตรงกันข้ามจะเกิดขึ้นอย่างสมบูรณ์ของตัวอักษรที่ปรากฏในทุกภาษาที่สามเพื่อส่งออกเป็นTOX BEAM PHPTOX BEAM PHP is 100% Cyrillic, 100% Greek and 100% Latin ตารางการค้นหา แผนภาพ Venn เป็นแหล่งที่มาของตัวอักษรด้านล่าง: ละตินเท่านั้น: J,G,S,D,Q,U,V,W,F,L,R ละตินและซิริลลิก: C, С …

19
การตรวจสอบสตริงปกติ
คำอธิบาย: รับสายเป็นอินพุตให้ตรวจสอบว่าเป็นเลขลำดับที่ถูกต้องเป็นภาษาอังกฤษหรือไม่ ถ้ามันเป็นความจริงกลับค่าที่ถูกต้องมิฉะนั้นจะส่งกลับค่าเท็จ (แนะนำโดย @Arnauld. ขอบคุณ. โดย @JoKing) สำหรับผู้ใช้ที่ต้องการทราบเกี่ยวกับเลขลำดับไปที่นี่: https://www.mathsisfun.com/numbers/cardinal-ordinal-chart.html (แนะนำโดย: qwr) อินพุตที่เป็นไปได้: 21st ---> true 12nd ---> false 1nd ---> false .... นี่เป็นความท้าทายของการเขียนโค้ดดังนั้นรหัสที่สั้นที่สุดในแต่ละภาษาจะเป็นผู้ชนะ ตัวอย่าง : console.log('12th' , true) // This evaluates to true console.log('1st' , true) // also evaluates to true console.log('21nd' , false) // returns false console.log('11st' , …

23
เรียงลำดับหมายเลขที่สะกดออก
รับรายการหมายเลขซีเรียลที่สะกดสองตัวหรือมากกว่าที่มีความยาวเท่ากันมากกว่าสองตัวอย่าง [[ "three" , "one" , "four" ], [ "one" , "five" , "nine" ], [ "two" , "six" , "five" ], [ "three" , "five" , "eight" ]] เรียงลำดับรายการตามตัวเลขที่คำว่า: [[ "one" , "five" , "nine" ], [ "two" , "six" , "five" ], [ "three" , "one" , "four" …

7
1D Hopping Array Maze
แรงบันดาลใจจากเราทำทาวเวอร์กระโดดและเกี่ยวข้องกับ2D Maze Minus 1D บทนำ งานของคุณคือการหาเส้นทางที่สั้นที่สุดที่จะออกจากเขาวงกตอาร์เรย์ตามกฎที่ระบุ ท้าทาย อาร์เรย์ 1D a ที่มีองค์ประกอบnถือได้ว่าเป็นเขาวงกตที่ประกอบด้วยจุดnซึ่งจุดที่มีดัชนีkเชื่อมต่อกับจุดที่มีk + a [ k ] และk - a [ k ] ในลักษณะทางเดียว ในคำอื่น ๆ คุณสามารถกระโดดไปข้างหน้าหรือข้างหลังตรง[ k ] ก้าวจากจุดที่มีค่าดัชนีk คะแนนที่มีดัชนีนอกขอบเขตของอาร์เรย์จะถูกพิจารณานอกเขาวงกต เพื่ออธิบายสิ่งนี้ให้พิจารณาอาร์เรย์ต่อไปนี้ [0,8,5,9,4,1,1,1,2,1,2] หากเราอยู่ที่องค์ประกอบที่ 5 ในขณะนี้เนื่องจากองค์ประกอบคือ 4 เราสามารถข้ามไปข้างหน้าไปยังองค์ประกอบที่ 9 หรือ 4 ขั้นตอนย้อนหลังไปยังองค์ประกอบที่ 1 ได้ ถ้าเราทำอย่างหลังเราจะจบลงด้วยองค์ประกอบ 0 ซึ่งบ่งชี้ว่าไม่มีการเคลื่อนไหวเพิ่มเติม ถ้าเราทำแบบเดิมเนื่องจากองค์ประกอบที่ 9 คือ 2 …

14
เรากระโดดหอคอย
งาน กำหนดอาเรย์ของจำนวนเต็มแบบไม่ลบaกำหนดจำนวนต่ำสุดของการกระโดดทางขวาที่จำเป็นในการข้าม "นอก" อาเรย์เริ่มต้นที่ตำแหน่ง 0 หรือคืนค่าศูนย์ / โมฆะถ้าไม่สามารถทำได้ กระโดดจากดัชนีถูกกำหนดให้เป็นการเพิ่มขึ้นของดัชนีอาร์เรย์โดยที่มากที่สุดia[i] กระโดดนอกเป็นกระโดดที่ดัชนีที่เกิดจากการกระโดดที่iจะออกนอกสนามสำหรับอาร์เรย์เพื่อให้การจัดทำดัชนี 1-based i>length(a)และสำหรับการจัดทำดัชนี i>=length(a)0-based ตัวอย่างที่ 1 พิจารณาArray = [4,0,2,0,2,0]: Array[0] = 4 -> You can jump 4 field Array[1] = 0 -> You can jump 0 field Array[2] = 2 -> You can jump 2 field Array[3] = 0 -> You …

8
ผันคำกริยา
การเปลี่ยนขนาดnเป็นการเรียงลำดับของจำนวนเต็มบวกn ตัวแรก (หมายถึงแต่ละจำนวนเต็มปรากฏขึ้นหนึ่งครั้งและทุกครั้ง) พีชคณิตสามารถรักษาได้เช่นฟังก์ชั่นที่มีการเปลี่ยนแปลงคำสั่งของรายชื่อของรายการที่มีขนาดที่n ตัวอย่างเช่น (4 1 2 3) ["a", "b", "c", "d"] = ["d", "a", "b", "c"] ดังนั้นการเรียงสับเปลี่ยนสามารถประกอบด้วยฟังก์ชั่น (4 1 2 3)(2 1 3 4) = (4 2 1 3) สิ่งนี้นำมาซึ่งคุณสมบัติที่น่าสนใจมากมาย วันนี้เราจะมุ่งเน้นไปconjugacy การเรียงสับเปลี่ยนyและx (ทั้งสองขนาดn ) เป็นคอนจูเกตถ้ามีการเปลี่ยนลำดับgและg -1 (เช่นขนาดn ) x = gyg-1 และgg -1เท่ากับการเปลี่ยนรูปแบบตัวตน ( ตัวเลขn ตัวแรกตามลำดับที่เหมาะสม) งานของคุณคือการเปลี่ยนขนาดเท่ากันสองขนาดผ่านวิธีการป้อนข้อมูลมาตรฐานและตัดสินใจว่าจะเชื่อมต่อกันหรือไม่ คุณควรส่งออกหนึ่งในสองค่าที่สอดคล้องกันหนึ่งถ้าพวกเขาเป็นคอนจูเกตและอื่น …

27
จัดกลุ่มรายการใหม่อย่างรวดเร็ว
การจัดกลุ่มใช้รายการและแยกเป็นรายการใหม่ขององค์ประกอบที่อยู่ติดกันเท่ากัน ตัวอย่างเช่น [1,1,2,1,1] -> [[1,1],[2],[1,1]] หากคุณใช้ความยาวของกลุ่มเหล่านี้คุณจะได้รับรายการจำนวนเต็มใหม่ [1,1,2,1,1] -> [2,1,2] งานของคุณคือการเขียนโปรแกรมที่ใช้รายการจำนวนเต็มบวกและหาจำนวนครั้งที่คุณสามารถจัดกลุ่มและขยายได้ก่อนที่รายการผลลัพธ์จะมีองค์ประกอบเดียว ตัวอย่างเช่นรายการ[1,2,3,3,2,1]สามารถจัดกลุ่มใหม่ได้ 4 ครั้ง [1,2,3,3,2,1] [1,1,2,1,1] [2,1,2] [1,1,1] [3] นี่คือcode-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์น้อยกว่าจะดีกว่า กรณีทดสอบ [1,2,3,3,2,1] -> 4 [1,2,3,4,5,6,7] -> 2 [1,1,1,1,1,1] -> 1 [2] -> 0 [1,2,4] -> 2 [1,2,2,1,1,2] -> 4 [1,2,2,1,1,2,1,2,2] -> 5 [1] -> 0

9
เคล็ดลับการตีกอล์ฟในคลีน
คุณมีเคล็ดลับทั่วไปอะไรสำหรับการเล่นกอล์ฟใน Clean โปรดโพสต์แนวคิดที่สามารถนำไปใช้กับปัญหาการเขียนโค้ดกอล์ฟโดยทั่วไปและอย่างน้อยก็ค่อนข้างเฉพาะเจาะจงกับ Clean ถ้าคุณไม่เคยได้ยินสะอาดคุณสามารถหาข้อมูลเพิ่มเติมได้ที่นี่ หรือคุณสามารถเข้าร่วมห้องสนทนา
17 code-golf  tips 

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