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

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

18
เลิกทำอาร์เรย์
ความท้าทายนี้ได้แรงบันดาลใจจากคำถามเกี่ยวกับ Mathematica.SE สมมติว่าคุณมีรายการ / อาร์เรย์ที่ซ้อนกันของโครงสร้างที่กำหนดเอง (รายการในแต่ละระดับไม่จำเป็นต้องมีความยาวเท่ากัน) เพื่อความง่ายเราจะสมมติว่าโหนดนั้นเป็นจำนวนเต็มไม่เป็นลบหรืออาร์เรย์ว่าง ตัวอย่างเช่น [[[1, 3], 2], [1, 4], 12, [[0, [], 0], [5, [7]]]] บางครั้งมันจะสะดวกกว่าที่จะแผ่แบนรายการนั้นเพื่อทำการจัดการบางอย่างของโหนดเช่น --> [1, 3, 2, 1, 4, 12, 0, 0, 5, 7] --> [1, 1, 0, 1, 0, 0, 0, 0, 1, 1] แต่ในที่สุดคุณต้องการรักษาโครงสร้างดั้งเดิมเอาไว้ดังนั้นคุณต้องเปลี่ยนสิ่งนี้กลับเป็น --> [[[1, 1], 0], [1, 0], 0, …

30
ใช้อักษรตัวแรกของป้อนคำให้พิมพ์ใหญ่
อันนี้ค่อนข้างเร็ว แต่ฉันแน่ใจว่าคุณจะชอบ Codegolf เป็นโปรแกรมที่จะป้อนข้อมูลในรูปแบบของประโยคและให้ผลลัพธ์ด้วยตัวอักษรตัวแรกในแต่ละคำ กฎ: ข้อมูลที่ส่งอาจไม่อยู่ในรูปแบบของฟังก์ชัน ดังนั้นไม่: function x(y){z=some_kind_of_magic(y);return z;} เป็นคำตอบสุดท้ายของคุณ ... รหัสของคุณจะต้องแสดงว่ามันต้องใช้อินพุตและให้เอาต์พุต รหัสจะต้องรักษาอักษรตัวใหญ่อื่น ๆ ที่มีการป้อนข้อมูล ดังนั้น eCommerce and eBusiness are cool, don't you agree, Richard III? จะถูกแสดงผลเป็น ECommerce And EBusiness Are Cool, Don't You Agree, Richard III? บางคนอาจจะคิดว่า "ง่ายฉันจะใช้ regex!" และการใช้ regex ดั้งเดิมในภาษากอล์ฟที่คุณเลือกจะมีโทษ 30 ตัวซึ่งจะถูกนำไปใช้กับการนับรหัสสุดท้ายของคุณ ปีศาจหัวเราะ "คำ" ในกรณีนี้คือสิ่งที่คั่นด้วยช่องว่าง ดังนั้นจึงpalate …

23
การเข้ารหัสแฮชกอล์ฟ
การประกวดครั้งนี้จบแล้ว เนื่องจากลักษณะของความท้าทายตำรวจและโจรความท้าทายตำรวจกลายเป็นเรื่องง่ายขึ้นมากเมื่อความสนใจในความท้าทายโจรที่เกี่ยวข้องได้ลดลง ดังนั้นในขณะที่คุณยังสามารถโพสต์ฟังก์ชันแฮชคำตอบของคุณจะไม่ได้รับการยอมรับหรือเป็นส่วนหนึ่งของกระดานแต้มนำ ความท้าทายนี้คือการค้นหาการใช้งานฟังก์ชันแฮชที่สั้นที่สุดที่ทนทานต่อการชนกล่าวคือควรหาข้อความที่แตกต่างกันสองข้อความที่มีแฮชเดียวกัน ในฐานะตำรวจคุณพยายามคิดค้นและใช้ฟังก์ชันแฮชเพื่อหาการประนีประนอมที่ดีที่สุดระหว่างขนาดรหัสและการต่อต้านการชน ใช้จำนวนไบต์มากเกินไปและตำรวจอีกคนจะเร็วกว่าคุณ! ในฐานะโจรคุณพยายามสกัดกั้นความพยายามของตำรวจโดยการทำหน้าที่ของพวกเขาให้แตกเพื่อพิสูจน์ว่าพวกเขาไม่เหมาะสม สิ่งนี้จะบังคับให้พวกเขาใช้จำนวนไบต์มากขึ้นเพื่อเสริมอัลกอริทึมของพวกเขา! ตำรวจท้าทาย งาน ใช้การเข้ารหัสลับฟังก์ชันแฮชH: ฉัน -> Oที่คุณเลือกที่ฉันเป็นชุดของทั้งหมดไม่ integers เชิงลบด้านล่าง 2 2 30และOเป็นชุดของทั้งหมดไม่ integers เชิงลบด้านล่าง 2 128 คุณสามารถใช้Hเป็นฟังก์ชันจริงที่ยอมรับและส่งคืนจำนวนเต็มเดียวการแทนค่าสตริงของจำนวนเต็มหรืออาร์เรย์ของจำนวนเต็มหรือโปรแกรมเต็มรูปแบบที่อ่านจาก STDIN และพิมพ์ไปยัง STDOUT ในฐาน 10 หรือ 16 เกณฑ์การให้คะแนน Hว่ามันต้องต่อต้านความท้าทายโจรที่กำหนดไว้ด้านล่าง ถ้าโจรเอาชนะส่งของคุณใน 168 ชั่วโมงแรกหลังการโพสต์มันก็ถือว่าแตก การดำเนินการของHควรสั้นที่สุด การส่งที่ไม่ได้ติดตามที่สั้นที่สุดจะเป็นผู้ชนะของความท้าทายของตำรวจ กฎเพิ่มเติม หากคุณใช้งานHเป็นฟังก์ชั่นโปรดใส่กระดาษห่อเพื่อใช้งานฟังก์ชั่นจากภายในโปรแกรมที่ทำงานตามที่อธิบายไว้ข้างต้น โปรดระบุเวกเตอร์ทดสอบอย่างน้อยสามรายการสำหรับโปรแกรมหรือ wrapper ของคุณ (ตัวอย่างอินพุตและเอาต์พุตที่สอดคล้องกัน) Hสามารถออกแบบนวนิยายของคุณ (ที่ต้องการ) หรืออัลกอริทึมที่รู้จักกันดีตราบใดที่คุณใช้มันด้วยตัวคุณเอง ห้ามมิให้ใช้ฟังก์ชั่นแฮชในตัว, ฟังก์ชั่นการบีบอัด, ตัวเลข, …

30
ฟังก์ชัน Ackermann
ฟังก์ชัน Ackermann นั้นมีความโดดเด่นในการเป็นหนึ่งในตัวอย่างที่ง่ายที่สุดของฟังก์ชันที่คำนวณได้ทั้งหมดซึ่งไม่ได้เรียกซ้ำแบบดั้งเดิม เราจะใช้คำจำกัดความของA(m,n)การรับในจำนวนเต็มสองไม่ใช่ลบที่ A(0,n) = n+1 A(m,0) = A(m-1,1) A(m,n) = A(m-1,A(m,n-1)) คุณอาจใช้ ฟังก์ชันที่ระบุชื่อหรือไม่ระบุชื่อโดยรับค่าจำนวนเต็มสองค่าเป็นอินพุตคืนค่าจำนวนเต็มหรือ โปรแกรมที่ใช้จำนวนเต็มสองช่องว่างหรือจำนวนเต็มคั่นบรรทัดใหม่บน STDIN พิมพ์ผลลัพธ์ไปที่ STDOUT คุณไม่สามารถใช้ฟังก์ชัน Ackermann หรือฟังก์ชั่น hyperexponentiation จากห้องสมุดหากมีอยู่ แต่คุณสามารถใช้ฟังก์ชันอื่นจากห้องสมุดอื่น ๆ อนุญาตให้ใช้การยกกำลังแบบปกติ ฟังก์ชันของคุณจะต้องสามารถหาค่าของA(m,n)m of 3 และ n ≤ 10 ในเวลาน้อยกว่าหนึ่งนาที อย่างน้อยที่สุดมันจะต้องยุติตามทฤษฎีในอินพุตอื่น ๆ : เนื่องจากสแต็กสเปซที่ไม่มีที่สิ้นสุด, ประเภท Bigint ดั้งเดิม, และระยะเวลานานตามอำเภอใจ, มันจะกลับคำตอบ. แก้ไข:หากภาษาของคุณมีค่าความลึกการเรียกซ้ำเริ่มต้นที่ จำกัด เกินไปคุณอาจกำหนดค่าใหม่ได้โดยไม่ต้องเสียค่าตัวอักษร การส่งที่มีจำนวนอักขระสั้นที่สุดจะชนะ นี่คือค่าบางอย่างเพื่อตรวจสอบคำตอบของคุณ: A …

1
เรือกวาดทุ่นระเบิด Solver
เราสร้างเขตข้อมูล Minesweeperแล้ว แต่มีบางคนต้องกวาดเหมืองที่สร้างขึ้นก่อนที่ PCG จะระเบิด! งานของคุณคือการเขียน Minesweeper Solver ที่เข้ากันได้กับโซลูชันที่ได้รับการยอมรับเล็กน้อยของ“ Working Minesweeper” (การกระทำถูกคั่นด้วยช่องว่างเพื่อให้มีฟิลด์ขนาดใหญ่) อินพุต:ฟิลด์ Minesweeper ฟิลด์คั่นด้วยช่องว่าง บรรทัดแรกแสดงจำนวนเหมืองทั้งหมด x: ไม่มีใครแตะต้อง !: ตั้งค่าสถานะ หลัก: จำนวนเหมืองรอบ ๆ สนาม ตัวอย่าง: 10 0 0 1 x x x x x 0 0 2 x x x x x 0 0 2 ! x x x x …

5
เลเซอร์ไปไหน?
ใช้กริด 2 มิติและวาดส่วนของเส้นตรงจำนวนหนึ่งเพื่อแสดงมิเรอร์ ตอนนี้เลือกจุดที่จะวางเลเซอร์ทฤษฎีและมุมเพื่อกำหนดทิศทางที่ชี้ไป คำถามคือ: หากคุณติดตามเส้นทางลำแสงเลเซอร์ในระยะทางที่กำหนดไว้คุณจะทำจุดประสานงานอะไร ตัวอย่าง: ในภาพนี้Lเป็นที่ตั้งของเลเซอร์tคือมุมของมัน (วัดจากแกน X ในเชิงบวก) M1, M2และM3มีทั้งหมดกระจกส่วนของเส้นและEเป็นจุดบนเส้นทางลำแสงเลเซอร์หลังจากที่หน่วยงานที่เริ่มต้นจากD = d1 + d2 + d3 + d4L เป้าหมาย เขียนโปรแกรมที่สั้นที่สุด (ไบต์) ที่เอาท์พุทEให้L, t, Dและรายการของกระจก (ใช้http://mothereff.in/byte-counterเพื่อนับจำนวนไบต์) รูปแบบอินพุต อินพุตจะมาจาก stdin ในรูปแบบ: Lx Ly t D M1x1 M1y1 M1x2 M1y2 M2x1 M2y1 M2x2 M2y2 ... ค่าทั้งหมดจะถูกจุดที่ตรงกับ regex [-+]?[0-9]*\.?[0-9]+นี้ลอย: มีช่องว่างระหว่างแต่ละหมายเลขเสมอ อนุญาตให้ใช้เครื่องหมายคำพูดรอบอินพุตได้ …
34 code-golf 

22
วาดรูปหัวใจ
ท้าทาย วาดรูปหัวใจ ... ในฐานะศิลปะ ASCII! งานศิลปะของคุณไม่จำเป็นต้องเหมือนของฉัน แต่มันต้องมีรูปร่างเหมือนหัวใจ ภายในใจต้องมีคำว่า "รัก" อย่างน้อย 20 ครั้ง กฎระเบียบ โปรแกรมต้องเขียนภาพตัดปะไปยังคอนโซล รหัสที่สั้นที่สุด (เป็นไบต์ภาษาใดก็ได้) จะชนะ ผู้ชนะจะถูกเลือกในวันที่ 14 กุมภาพันธ์ในวันวาเลนไทน์

4
สี่เหลี่ยมของ Flippin
สร้างโปรแกรมหรือฟังก์ชั่นเพื่อแยกส่วนของตารางโดยการพลิก (กลับจุดศูนย์กลาง) เฉพาะแถวและคอลัมน์เท่านั้น อินพุต อินพุตจะเป็นตาราง 9x9 ของตัวเลขในรูปแบบของสตริง 9 บรรทัดดังนี้: 986553229 264564891 759176443 643982153 567891234 526917874 685328912 891732537 117644378 รูปแบบอินพุตนี้ไม่สามารถต่อรองได้ - โซลูชันใด ๆ ที่เป็น "โฆษณา" ที่มีรูปแบบอินพุตจะถือว่าไม่ถูกต้อง เอาท์พุต เอาต์พุตควรเป็นรายการของการเคลื่อนไหวแบบพลิกซึ่งเมื่อใช้กับอินพุตตามลำดับที่กำหนดควรสร้างกริดเป้าหมายใหม่ ตัวอย่างเอาต์พุต (ไม่ใช่โซลูชันสำหรับตัวอย่างอินพุตก่อนหน้า): 28IF5D3EAB9G3 รูปแบบผลลัพธ์นี้ยังไม่สามารถต่อรองได้ ไม่ควรมีการขึ้นบรรทัดใหม่หรือเว้นวรรคในเอาต์พุตเฉพาะอักขระ1- 9และA- I(อักขระตัวพิมพ์เล็กสามารถใช้ได้กับอักขระตัวพิมพ์ใหญ่หากคุณต้องการ) กริดเป้าหมาย (สถานะที่คุณต้องการสร้างใหม่) มีดังนี้: 123456789 234567891 345678912 456789123 567891234 678912345 789123456 891234567 912345678 ควรใช้ตัวเลข1- 9เป็นคำแนะนำในการพลิกแถวและตัวอักษรA- Iควรใช้สำหรับคอลัมน์ สิ่งนี้แสดงอยู่ด้านล่างพร้อมกริดในสถานะที่ถูกกู้คืน …
34 code-golf 

30
ROT-13 แปลงอินพุตมาตรฐาน
ความท้าทาย: เพื่ออ่านอินพุตของความยาวโดยพลการและสร้างROT13ของอินพุต อักขระทั้งหมดที่นอกเหนือจาก AZ ควรคัดลอกไปที่คำต่อคำเอาต์พุตและควรเก็บไว้ในกรณีที่เป็นไปได้ ภาษาใด ๆ ที่สามารถอ่านและเขียนสตรีมมาตรฐานเป็นเกมที่ยุติธรรม

30
นี่เป็นความชั่วร้ายหรือเปล่า?
บทนำ ในทฤษฎีตัวเลขตัวเลขนั้นถือว่าชั่วร้ายหากมีจำนวน 1 คู่ในการแทนเลขฐานสอง ในการท้าทายในวันนี้คุณจะสามารถระบุได้หรือไม่ว่าตัวเลขที่ระบุนั้นเป็นความชั่ว ท้าทาย งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบซึ่งยอมรับจำนวนเต็มเดียวที่ไม่เป็นลบเป็นอินพุตและเอาต์พุต (หรือส่งคืน) ว่าหมายเลขนั้นเป็นความชั่วหรือไม่ คุณสามารถส่งออกค่าความจริงใด ๆถ้าจำนวนเป็นความชั่วร้ายและมูลค่าที่เป็นเท็จหากจำนวนนั้นไม่ได้เป็นความชั่วร้าย คุณอาจเข้าและส่งออกในรูปแบบที่ยอมรับใด ๆ ช่องโหว่มาตรฐานไม่ได้รับอนุญาต ลำดับ OEIS A001969เป็นลำดับที่มีตัวเลขชั่วร้ายทั้งหมด นี่คือรายการของ 10,000 ตัวร้ายหมายเลขแรกสำหรับการอ้างอิง (และกรณีทดสอบเพิ่มเติม!) คำถามนี้คือcode-golfดังนั้นยิ่งสั้นยิ่งดี อย่าถูกเลื่อนออกไปโดยคำตอบสั้น ๆ ในภาษากอล์ฟ ฉันขอแนะนำให้คุณส่งเป็นภาษาที่คุณต้องการ นี่คือกรณีทดสอบบางส่วน: 3 => True 11 => False 777 => True 43 => True 55 => False 666 => False กระดานผู้นำ ที่ด้านล่างของหน้าเป็นตัวอย่างสแต็กที่มีกระดานผู้นำสำหรับคำถามนี้ (ขอบคุณ @MartinEnder) เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต …

30
สตริง Interlace
ความท้าทายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นซึ่งเมื่อได้รับความยาวเท่ากันสองสายจะทำการสลับอักขระอื่น ๆ และเอาท์พุท / ส่งคืนสตริงผลลัพธ์ตามลำดับอย่างใดอย่างหนึ่ง ตัวอย่าง "Hello," "world!" --> "Hollo!" "werld," "code" "golf" --> "codf" "gole" "happy" "angry" --> "hnpry" "aagpy" "qwerty" "dvorak" --> "qvertk" "dworay" "1, 2, 3" "a, b, c" --> "1, b, 3" "a, 2, c" "3.141592653589" "2.718281828459" --> "3.111291623489" "2.748582858559" "DJMcMayhem" "trichoplax" --> "DrMcMoylex" "tJichapham" "Doorknob" …
34 code-golf  string 

6
คุณสามารถเข้าถึงหมายเลขนี้โดยเพิ่มและจัดเรียงใหม่ได้หรือไม่?
แรงบันดาลใจจากคำถามนี้ใน Math.SE เริ่มต้นด้วย1คุณสามารถดำเนินการหนึ่งในสองอย่างต่อไปนี้ซ้ำ ๆ เพิ่มจำนวนเป็นสองเท่า หรือ จัดเรียงตัวเลขใหม่ตามที่คุณต้องการยกเว้นว่าจะไม่มีศูนย์นำหน้า รับตัวอย่างจากโพสต์ Math.SE ที่เชื่อมโยงเราสามารถเข้าถึง1000ผ่านขั้นตอนต่อไปนี้: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 125, 250, 500, 1000 คุณสามารถเข้าถึงหมายเลขใดในกระบวนการนี้และทางออกที่สั้นที่สุดคืออะไร ความท้าทาย กำหนดจำนวนเต็มบวกNกำหนดลำดับที่สั้นที่สุดที่เป็นไปได้ของจำนวนเต็มถึงNกระบวนการข้างต้นถ้าเป็นไปได้ หากมีวิธีการแก้ปัญหาที่ดีที่สุดหลายอย่างให้ส่งออกหนึ่งในนั้น หากไม่มีลำดับดังกล่าวคุณควรส่งรายการว่าง ลำดับอาจอยู่ในรูปแบบของสตริงหรือรายการที่สะดวกไม่คลุมเครือ คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์ นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ กรณีทดสอบ นี่คือรายการของตัวเลขที่เข้าถึงได้ทั้งหมดและรวมถึง 256 คอลัมน์แรกคือหมายเลข (อินพุตของคุณ) คอลัมน์ที่สองคือจำนวนขั้นตอนที่เหมาะสมที่สุด (ซึ่งคุณสามารถใช้เพื่อตรวจสอบความถูกต้องของโซลูชันของคุณ) และที่สาม คอลัมน์เป็นลำดับที่เหมาะสมที่สุดในการเดินทาง: …

30
ไมโครเวฟของฉันจะทำงานได้นานแค่ไหน?
ฉันหิว. ลองทำอะไรซักอย่างที่ไมโครเวฟกันเถอะ กำหนดอินพุตตัวเลขระหว่าง 1 ถึง 4 หลักส่งออกจำนวนวินาทีที่ไมโครเวฟควรทำงาน รายละเอียด เคล็ดลับคือการหาว่าผู้ใช้ป้อนวินาทีหรือรวมของวินาทีและนาที สถานที่และสถานที่นับสิบควรตีความว่าเป็นวินาทีและสถานที่นับแสนควรเป็นนาที ตัวอย่างเช่นค่า1234ควรถูกตีความเป็น 12 นาที, 34 วินาทีและ9876ควรเป็น 98 นาที, 76 วินาที การพิมพ์130และ90ควรส่งผลให้เวลาทำอาหาร 90 วินาที ต่อไปนี้เป็นอินพุตและเอาต์พุตอื่นสองสามรายการ: 1 = 1 11 = 11 111 = 71 1111 = 671 9 = 9 99 = 99 999 = 639 9999 = 6039 กฎระเบียบ นี่คือโค้ดกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ ไม่อนุญาตช่องโหว่มาตรฐาน …
33 code-golf  number 

5
ความแตกต่างทางประวัติศาสตร์ระหว่าง `/` และ `÷ 'ในนิพจน์ทางคณิตศาสตร์
บทนำ: แรงบันดาลใจจากการอภิปรายที่มีอยู่แล้วที่เกิดขึ้นมานานหลายปีเกี่ยวกับการแสดงออก2)6 ÷ 2 ( 1 + 2 )6÷2(1+2)6÷2(1+2) ด้วยการแสดงออกที่คณิตศาสตร์ได้อย่างรวดเร็วจะเห็นว่าคำตอบที่ถูกต้องคือในขณะที่คนที่มีพื้นหลังเป็นคณิตศาสตร์ที่เรียบง่ายจากโรงเรียนอย่างรวดเร็วจะเห็นว่าคำตอบที่ถูกต้องคือ9ดังนั้นข้อโต้แย้งนี้และคำตอบที่ต่างกันมาจากไหน? มีสองกฎระเบียบที่ขัดแย้งกันในวิธีการที่เป็นลายลักษณ์อักษร หนึ่งเนื่องจากเป็นส่วนหนึ่งและเป็นหนึ่งเนื่องจากสัญลักษณ์การหาร6 ÷ 2 ( 1 + 2 )6÷2(1+2)6÷2(1+2)1119996 ÷ 2 ( 1 + 2 )6÷2(1+2)6÷2(1+2)2(÷ แม้ว่าทั้งนักคณิตศาสตร์และ 'คนธรรมดา' จะใช้PEMDAS (วงเล็บ - เลขชี้กำลัง - การหาร / การคูณ - การบวก / การลบ) สำหรับนักคณิตศาสตร์การแสดงออกจะได้รับการประเมินเช่นนี้ด้านล่างเพราะเป็นตัวอย่างเช่น monomial อาคา " คำเดียวเนื่องจากการคูณโดยนัยโดยการตีข่าว " (และดังนั้นส่วนหนึ่งของใน) ซึ่งจะได้รับการประเมินที่แตกต่างจาก (ทวินามอาคาสองคำ):2 ( …

9
อัลกอริทึมการเรียงลำดับ
มี "อัลกอริทึมการเรียงลำดับ" บางครั้งเรียกว่าการเรียงลำดับสตาลินเพื่อเรียงลำดับรายการคุณเพียงแค่ลบองค์ประกอบออกจากรายการจนกว่าจะเรียงลำดับตามลำดับที่เพิ่มขึ้น ตัวอย่างเช่นรายการ [1, 2, 4, 5, 3, 6, 6] เมื่อ "เรียง" โดยใช้การเรียงลำดับสตาลินจะกลายเป็น [1, 2, 4, 5, 6, 6] ทั้งสามถูกลบเพราะมันไม่เป็นระเบียบ ตอนนี้เห็นได้ชัดว่ามีหลายวิธีในการลบองค์ประกอบเพื่อจัดเรียงรายการ ตัวอย่างเช่นรายการใด ๆ ที่มีองค์ประกอบน้อยกว่าสองรายการจะต้องเรียงลำดับดังนั้นเพียงแค่ลบองค์ประกอบมากพอที่สุ่มสี่สุ่มห้าเราสามารถเรียงลำดับรายการได้เสมอ เนื่องจากเป็นกรณีนี้เราจึงสนใจเฉพาะผลลัพธ์ที่ยาวที่สุดเท่าที่เป็นไปได้จากการเรียงลำดับของสตาลิน งานของคุณจะใช้รายการของจำนวนเต็มบวกและส่งออกความยาวของรายการเรียงลำดับ (เพิ่มขึ้น) ที่ยาวที่สุดที่สามารถมาถึงได้โดยการเอาองค์ประกอบออกจากรายการต้นฉบับ นั่นคือความยาวของรายการย่อยที่เรียงลำดับยาวที่สุด (อาจไม่ต่อเนื่องกัน) รายการที่เรียงลำดับสามารถมีองค์ประกอบเดียวกันมากกว่าหนึ่งครั้งในแถว คุณไม่จำเป็นต้องสนับสนุนรายการว่างเปล่าเว้นแต่ว่าโปรแกรมของคุณจะว่างเปล่า เกณฑ์การให้คะแนน คำตอบของคุณจะได้รับคะแนนตามความยาวของการเรียงลำดับสตาลินที่ยาวที่สุดเท่าที่จะเป็นไปได้ โปรแกรมจะถูกตีความเป็นลำดับของไบต์แทนที่จะเป็นตัวอักษรและลำดับของโปรแกรมจะเป็นแบบธรรมชาติที่เกิดขึ้นโดยการตีความจำนวนไบต์เป็นตัวเลข คะแนนต่ำกว่าดีกว่า นี่ไม่ใช่รหัสกอล์ฟ ต่อไปนี้เป็นเครื่องมือที่ไม่ซับซ้อนเพื่อช่วยให้คุณได้คะแนนคำตอบของคุณ กรณีทดสอบ [1, 2, 4, 5, 3, 6, 6] -> 6 [19, …

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