คำถามติดแท็ก set-partitions

สำหรับความท้าทายที่เกี่ยวข้องกับการแบ่งย่อยของเซตเป็นชุดที่แยกออกจากกัน นอกจากนี้ยังรวมถึงแผนกย่อยของคอลเล็กชันที่สั่งซื้อเช่นรายการและชุดที่ไม่ต่อเนื่องเช่นช่วงเวลา ความท้าทายควรกำหนดแนวคิดของพาร์ติชันอย่างระมัดระวัง

3
เครื่องกำเนิดบัตร Dobble / SpotIt
บทนำ Dobble / SpotItเป็นเกมไพ่ที่ผู้คนต้องมองเห็นสัญลักษณ์เดียวกันบนการ์ดในเวลาอันสั้นระบุและย้ายไปที่คู่ถัดไป การ์ดแต่ละใบมีหลายสัญลักษณ์ (8 ในรุ่นปกติ) แต่มีหนึ่งสัญลักษณ์ที่เหมือนกันระหว่างการ์ดแต่ละคู่ ตัวอย่างจากเกมจริง: ท้าทาย เขียนโปรแกรมที่ได้รับชุดของสัญลักษณ์ (ตัวอักษร ASCII เดียว) และจำนวนของสัญลักษณ์บนการ์ดใบเดียวจะผลิตบัตรรายการผลลัพธ์ด้วยสัญลักษณ์สำหรับการ์ดแต่ละใบ เห็นได้ชัดว่ามีชุดค่าผสมที่เทียบเท่าจำนวนมากโปรแกรมของคุณต้องเขียนชุดค่าผสมใด ๆ ที่สร้างการ์ดจำนวนมากที่สุดสำหรับอินพุตที่กำหนด มันเป็นรหัส - กอล์ฟดังนั้นจึงย่อรหัสได้ดีกว่า มันจะเป็นการดีถ้าการคำนวณจะเสร็จสิ้นก่อนที่ความร้อนจากจักรวาลจะเสียชีวิตสำหรับกรณีที่ซับซ้อนที่สุด อินพุต ข้อโต้แย้งสองข้อสำหรับฟังก์ชัน / stdin (ตัวเลือกของคุณ) อันดับแรกคือการรวบรวมสัญลักษณ์บางอย่างเช่น 'ABCDE "หรือ [' A ',' B ',' C ',' D ',' E '] - รูปแบบที่คุณเลือกไม่ว่าจะเป็นสตริงชุดรายการสตรีม หรืออะไรก็ตามที่เป็นสำนวนสำหรับภาษาที่เลือกตัวละครจะได้รับจากชุดของ [A-Za-z0-9] ไม่มีการซ้ำซ้อน (ดังนั้นขนาดสูงสุดของชุดสัญลักษณ์อินพุตคือ 62) พวกเขาจะไม่ได้รับคำสั่งโดยไม่จำเป็น ( …

12
เรนจ์ไฟต์ของหมายเลข Cube ระยะทาง
แรงบันดาลใจจากรายการ Numberphile นี้ พื้นหลัง หมายเลขก้อนระยะของจำนวนเต็มnมีการกำหนดไว้ที่นี่เป็นชุดของจำนวนเต็มที่มีx³ระยะออกไปเพื่อให้x สำหรับตัวอย่างง่ายๆด้วยn=100และx=2ที่หมายเลขก้อนระยะทาง{92,108}เป็น นี้สามารถยื่นออกไปในชุดที่มีขนาดใหญ่ขึ้นได้ง่ายๆโดยการที่แตกต่างกันx ด้วยx ∈ {1,2,3,4}เดียวกันเรามีชุดผลลัพธ์n=100{36,73,92,99,101,108,127,164} ให้กำหนดซีดี (n, x)เป็นชุดของจำนวนเต็มทั้งหมดด้วยn ± z³z ∈ {1,2,3,...,x} ตอนนี้เราสามารถมุ่งเน้นไปที่บางส่วนของคุณสมบัติพิเศษเหล่านี้หมายเลขก้อนระยะ คุณสมบัติพิเศษมากมายว่าตัวเลขสามารถมีสองคุณสมบัติที่เรากำลังสนใจในที่นี่มีprimalityและที่สำคัญตัวหาร สำหรับตัวอย่างซีดีด้านบน(100,4)โปรดทราบว่า73, 101, 127ทั้งหมดนั้นดีเลิศ {36,92,99,108,164}ถ้าเราลบจากชุดที่เราจะเหลือ ทั้งหมด divisors สำคัญของตัวเลขเหล่านี้ (ตามลำดับ) {2,2,3,3,2,2,23,3,3,11,2,2,3,3,3,2,2,41}ซึ่งหมายความว่าเรามี 5 {2,3,23,11,41}divisors ดังนั้นเราจึงสามารถกำหนดว่าCD (100,4)มีravenity 15ของ ความท้าทายที่นี่คือการเขียนฟังก์ชั่นหรือโปรแกรมในไบต์ที่น้อยที่สุดที่ส่งออกความรุนแรงของอินพุตที่กำหนด อินพุต จำนวนเต็มบวกสองค่าnและxในรูปแบบที่สะดวกใด ๆ เอาท์พุต จำนวนเต็มเดียวอธิบายravenityของทั้งสองใส่ตัวเลขเมื่อคำนวณกับซีดี (n, x) กฎระเบียบ อินพุต / เอาต์พุตสามารถผ่านใด ๆวิธีการที่เหมาะสม มีข้อ จำกัดช่องโหว่มาตรฐาน เพื่อความสะดวกในการคำนวณคุณสามารถสันนิษฐานได้ว่าข้อมูลอินพุตจะเป็นเช่นนั้นว่าซีดี (n, …

3
ลบตัวอักษรในขณะที่รักษาสตริงที่ไม่ซ้ำกัน
แรงบันดาลใจจากนี้ยอดเยี่ยม (ขึ้นอยู่กับจำนวนการดูและออกเสียงลงคะแนน) ความท้าทายซึ่งในความต่ำต้อยของฉันมีคำตอบวิธีที่น้อยเกินไป รับ (โดยวิธีการใด ๆ ) รายการของสตริงคืน (โดยวิธีการใด ๆ ) ชุดของตัวอักษรที่เมื่อลบออกจากสตริงที่กำหนดออกจากความยาวรวมของ (สิ่งที่เหลืออยู่) สตริงที่มีขนาดเล็กที่สุดในขณะที่รักษาแต่ละ สตริงที่ไม่ซ้ำกันและอย่างน้อยหนึ่งตัวอักษร ตัวอย่าง: ให้ "วัน" และ "วัน"; ส่งคืน "ay" เนื่องจากสตริงที่กำหนดจะเป็น "D" และ "d" เมื่อลบอักขระ "ay" ออก ได้รับ "Hello World!", "Hello world." และ "Hello world"; ส่งคืน "Helo Wrd" ให้เนื่องจากสตริงจะเป็น "!", "w." และ "w" เมื่ออักขระ "Helo Wrd" (มีช่องว่าง) ถูกลบออก …

4
palindromes อ้วน
Palindromes นั้นสนุก แต่สตริงอื่น ๆ บางส่วนเริ่มรู้สึกไม่ดี เราสามารถเปลี่ยนสตริงเหล่านั้นให้เป็นpalindromes ก้อนโดยแยกพวกมันออกเป็นอาร์เรย์ palindromic ของชิ้น ยกตัวอย่างเช่นสตริง"abcabca"ไม่ palindrome ถ้าเราอ่านทีละอักขระ แต่เรามีสามวิธีที่แตกต่างกันในการทำมันอ้วน palindrome: ["abcabca"] ["a" "bcabc" "a"] ["a" "bc" "a" "bc" "a"] อย่างที่คุณเห็น Palindromicness อ้วน ๆ เป็นแนวคิดที่ครอบคลุมมาก สตริงทุกตัวสามารถเปลี่ยนเป็น palindrome แบบก้อนได้อย่างน้อยหนึ่งวิธี งาน เขียนโปรแกรมหรือฟังก์ชั่นที่รับสตริงเป็นอินพุตและส่งคืนพาลินโดรมิกของก้อนนั่นคือจำนวนพาร์ติชันที่เป็นอาร์เรย์พาลินโดรมิก กรณีทดสอบ OUTPUT | INPUT --------+--------------------------------------------- 1 | "" 1 | "a" 1 | "ab" 2 | "aa" …

10
ย่อยสลายเป็นจำนวนเฉพาะ
กำหนดจำนวนเต็มnส่งคืนจำนวนวิธีที่ n สามารถเขียนเป็นรายการของจำนวนเฉพาะ ยกตัวอย่างเช่น2323สามารถเขียนเป็น(2,3,23), (23,23)หรือ(2,3,2,3)หรือดังนั้นคุณจะเอาท์พุท(23,2,3) หากไม่สามารถเขียนในลักษณะนี้คุณควรเอาท์พุท40 จำนวนเฉพาะเช่น019หรือ00000037เป็นจำนวนเฉพาะที่ถูกต้องสำหรับปัญหานี้ กรณีทดสอบ: 5 -> 1 55 -> 1 3593 -> 4 (359 and 3, or 3 and 593, or 3 and 59 and 3, or 3593) 3079 -> 2 (3 and 079, or 3079) 119 -> 0 5730000037 -> 7 (5,7,3,000003,7, 5,7,3,0000037, 5,73,000003,7, 5,73,0000037, …

6
ครอบคลุมชุดที่มีทวีคูณ
จะช่วยให้ชุดของจำนวนเต็มที่มากกว่า 1 และเรียกว่าX เราจะกำหนดS (i)จะเป็นชุดของสมาชิกทั้งหมดของXหารด้วยฉันที่ฉัน> 1 ต้องการเลือกจากชุดย่อยเหล่านี้กลุ่มของชุดดังกล่าวที่ สหภาพของพวกเขาคือเซตX ไม่มีองค์ประกอบของXอยู่ในสองชุด ตัวอย่างเช่นเราสามารถจัดกลุ่มใหม่{3..11}เป็น {3,4,5,6,7,8,9,10,11} S(3): {3, 6, 9, } S(4): { 4, 8, } S(5): { 5, 10, } S(7): { 7, } S(11):{ 11} บางชุดไม่สามารถแสดงออกได้ด้วยวิธีนี้ ตัวอย่างเช่นถ้าเราใช้เวลา{3..12}, 12มีหลายทั้ง 3 และ 4 การป้องกันไม่ให้ชุดของเราจากการเป็นพิเศษร่วมกัน บางชุดสามารถแสดงได้หลายวิธีเช่น{4..8}สามารถแสดงเป็น {4,5,6,7,8} S(4): {4, 8} S(5): { 5, } S(6): { …

2
ค้นหาปัจจัยย่อย
ลองจินตนาการว่าเรามีจำนวนเต็มบวกจำนวน จำกัด ชุดนี้สามารถแสดงเป็นเส้นของจุดที่แต่ละจำนวนเต็มปัจจุบันในชุดที่เต็มไปเช่น Scantron หรือหมัดบัตร ตัวอย่างเช่นชุด{1,3,4,6}สามารถแสดงเป็น: *.**.* *แสดงถึงสมาชิกของชุดของเราและ.แสดงถึงจำนวนเต็มที่ไม่ได้เป็นสมาชิกของเขาตั้ง ชุดเหล่านี้มี "ปัจจัย" Loosely x เป็นปัจจัยของ y หาก y สามารถสร้างจากสำเนาของ x ได้ คำจำกัดความของปัจจัยของเรามีความเข้มงวดมากขึ้น x เป็นปัจจัยของ y ถ้าหาก y เป็นสหภาพของจำนวนชุดที่แยกจากกันทั้งหมดนี้เป็น x ที่มีออฟเซ็ต เราจะเรียกปัจจัยของเพราะทำค่อนข้างชัดเจนขึ้นจากสองสำเนาของใส่จนจบ*.**.**.**.* *.**.* ------ *.*... ...*.* ปัจจัยไม่จำเป็นต้องจบสิ้นเราก็จะบอกว่า*.*เป็นปัจจัย*.*.*.* *.*.*.* ------- *.*.... ....*.* ปัจจัยยังสามารถทับซ้อนกัน วิธีการ*.*นี้ยังเป็นปัจจัย**** **** ---- *.*. .*.* อย่างไรก็ตามตัวเลขไม่สามารถครอบคลุมได้มากกว่าหนึ่งครั้ง ตัวอย่าง*.*คือไม่ได้*.*.*ปัจจัยของ นี่คือตัวอย่างที่ซับซ้อนมากขึ้น: *..*.**..***.*.* นี่*..*.*เป็นปัจจัย *..*.*คุณจะเห็นว่าด้านล่างที่ผมได้เรียงรายขึ้นสามกรณีของ …

3
การนับจำนวนป่าที่ถูก จำกัด บนบันไดMöbiusที่มีความยาว n
OEIS ลำดับA020872นับจำนวนของป่าไม้ จำกัด ในการMöbiusบันได M n ความท้าทาย ความท้าทายคือการเขียนโปรแกรมที่ใช้เวลาเป็นจำนวนเต็มใส่n > 1และผลตอบแทนA020872(n)จำนวน จำกัด ป่าบนMöbiusบันไดเอ็มn นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดจึงชนะ (แรงจูงใจที่ซ่อนเร้นคือการขยายความยาวของลำดับนี้โดยเล็กน้อย) คำนิยาม ป่าที่ถูก จำกัดเป็นพาร์ทิชันของกราฟดังกล่าวว่าแต่ละส่วนเป็นทั้ง (ไม่มีทิศทาง) เส้นทางหรือจุดสุดยอดบางแห่ง Möbiusบันได M nเป็นกราฟซึ่งสามารถจะคิดว่าเป็น 2n-gon กับเส้นทแยงมุมวาดระหว่างจุดตรงข้ามทั้งหมด ตัวอย่าง นี่คือป่าที่ถูก จำกัด 34 แห่งใน M 2 (สี่เหลี่ยมจัตุรัสที่มีเส้นทแยงมุมวาด) โปรดสังเกตว่ากราฟแรกถูกแบ่งเป็นจุดยอดแยกสี่จุดส่วนที่สองถูกแบ่งเป็นหนึ่งเส้นทางและสองจุดยอดแยกเป็นต้น

4
รับ The Getters
งาน ฉันเดาว่าทุกคนชอบการสร้างรหัสอัตโนมัติและประหยัดเวลาในการทำงาน คุณต้องสร้างชั้นเรียนและสมาชิกจำนวนมากในระหว่างวันและคุณไม่ต้องการสร้างสิ่งเหล่านั้นgettersด้วยตนเอง ภารกิจคือการเขียนโปรแกรมหรือฟังก์ชั่นที่สร้างขึ้นgettersสำหรับสมาชิกทุกคนในชั้นเรียนให้คุณโดยอัตโนมัติ การป้อนข้อมูล ในวัตถุภาษาของเรานั้นง่ายมาก ชื่อของชั้นเรียนและสมาชิกจะต้องเริ่มต้นด้วย chararacter จากและสามารถมีตัวอักษร[a-zA-Z] [a-zA-Z0-9]นี่คือตัวอย่าง: class Stack { public overflow; protected trace; private errorReport; } ผลลัพธ์ นี่เป็นเอาต์พุตที่ถูกต้องตามตัวอย่างที่กำหนด: class Stack { public overflow; protected trace; private errorReport; public function getOverflow() { return this->overflow; } public function getTrace() { return this->trace; } public function getErrorReport() { return …
13 code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

6
ค้นหาค่าสัมประสิทธิ์ของฟังก์ชั่นการสร้างเหตุผล
หากเราเขียนลำดับของตัวเลขเป็นค่าสัมประสิทธิ์ของชุดพลังงานชุดพลังงานนั้นจะเรียกว่า (ธรรมดา) ฟังก์ชันสร้าง (หรือ Gf) ของลำดับนั้น นั่นคือถ้าสำหรับฟังก์ชันF(x)และชุดของจำนวนเต็มa(n)เรามี: a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x) จากนั้นเป็นหน้าที่ของการสร้างF(x) aตัวอย่างเช่นชุดรูปทรงเรขาคณิตบอกเราว่า: 1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x) ดังนั้นการสร้างฟังก์ชั่นของการมี1, 1, 1, ... 1/(1-x)หากเราแยกความแตกต่างทั้งสองข้างของสมการข้างบนและคูณด้วยxเราจะได้ความเสมอภาคต่อไปนี้: x + 2x^2 + 3x^3 + 4x^4 + ... = …
12 code-golf  math  integer  polynomials  code-golf  math  abstract-algebra  restricted-time  code-golf  math  primes  code-golf  math  number  arithmetic  code-golf  quine  code-golf  number  sequence  code-golf  string  number  code-golf  array-manipulation  code-golf  number  code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

2
ตัวเก็บประจุคู่
ตัวเก็บประจุมีชื่อเสียงในการผลิตด้วยความทนทานสูง ซึ่งเป็นที่ยอมรับได้ในหลายกรณี แต่บางครั้งจำเป็นต้องใช้ความจุที่มีค่าความคลาดเคลื่อน จำกัด กลยุทธ์ทั่วไปในการรับกำลังการผลิตด้วยมูลค่าที่แน่นอนที่คุณต้องการคือการใช้ตัวเก็บประจุที่วัดอย่างรอบคอบสองชุดพร้อมกันเพื่อให้ความจุเพิ่มขึ้นกับบางสิ่งในช่วงที่คุณต้องการ เป้าหมายในการท้าทายนี้คือกำหนดความจุ (หลายชุด) เพื่อจับคู่ตัวเก็บประจุเพื่อให้ความจุรวมของแต่ละคู่อยู่ในช่วงที่กำหนด คุณต้องค้นหาชุดการจับคู่ที่ดีที่สุดนั่นคือชุดการจับคู่ที่พบมากที่สุดเท่าที่จะเป็นไปได้ ข้อ จำกัด อินพุตประกอบด้วยรูปแบบของตัวเลือก รายการความจุที่ไม่มีการเรียงลำดับซึ่งเป็นตัวแทนของชุดตัวเก็บประจุ (หลาย) ที่คุณมี คู่ของความจุที่แสดงขอบเขตล่างและบนของช่วงเป้าหมาย (รวม) ความจุทั้งหมดในอินพุตเป็นจำนวนเต็มบวกที่น้อยกว่า 2 30หน่วยคือ pF (ไม่ใช่แบบนั้นสำคัญ) นอกเหนือจากรายการความจุในอินพุตชุดตัวเก็บประจุที่คุณยังมีจำนวนของตัวเก็บประจุที่ไม่มีที่สิ้นสุดที่มีค่า 0 pF เอาต์พุตประกอบด้วยรูปแบบของตัวเลือกรายการคู่ของความจุซึ่งผลรวมของแต่ละคู่อยู่ในช่วงเป้าหมายที่ระบุ ไม่ได้ระบุลำดับของคู่หรือลำดับความจุภายในคู่ ความจุในการส่งออกไม่อาจปรากฏบ่อยขึ้นกว่าที่ปรากฏอยู่ในชุดของตัวเก็บประจุที่คุณมี กล่าวอีกนัยหนึ่ง: คู่ที่คุณส่งออกจะต้องไม่ทับซ้อนกัน จะต้องไม่มีเงื่อนไขที่เป็นไปได้สำหรับผลลัพธ์ที่เป็นไปได้ 4 และ 5 ที่มีความจุมากกว่าคู่ที่เอาต์พุตของโปรแกรมของคุณสร้างขึ้น โปรแกรมของคุณจะยุติในเวลา O ( n !) โดยที่nคือความยาวของรายการที่แสดงถึงชุดของตัวเก็บประจุที่คุณมี ช่องโหว่จะไม่ถูกทารุณกรรม ช่วงเป้าหมายจะต้องไม่ว่างเปล่า เกณฑ์การให้คะแนน คะแนนของคุณคือความยาวของการแก้ปัญหาของคุณใน octets หากวิธีการแก้ปัญหาของคุณจัดการเพื่อแก้ปัญหานี้ในเวลาพหุนาม O ( n …

19
สร้างพาร์ติชันย่อยทั้งหมด
ให้ลิสต์ของจำนวนเต็มแบบไม่ว่างเปล่าให้เอาต์พุตทุก ๆ การแบ่งพาร์ติชั่นที่เป็นไปได้ของรายการที่แต่ละพาร์ติชั่นเป็นรายการย่อยที่ไม่ว่างเปล่า ดังนั้นสำหรับรายการ[1, 2, 3, 4]ผลลัพธ์คือ: [[1, 2, 3, 4]] [[1, 2, 3], [4]] [[1, 2], [3, 4]] [[1, 2], [3], [4]] [[1], [2, 3, 4]] [[1], [2, 3], [4]] [[1], [2], [3, 4]] [[1], [2], [3], [4]] ลำดับของรายการในผลลัพธ์ไม่สำคัญดังนั้น[[1, 2, 3, 4]]อาจเป็นครั้งแรกสุดท้ายหรือที่ใดก็ได้ คำสั่งขององค์ประกอบจะต้องถูกเก็บรักษาไว้ นี่คือรหัสกอล์ฟคำตอบที่สั้นที่สุดจึงชนะ ที่เกี่ยวข้อง: รายการพาร์ทิชัน!

6
ผลิตภัณฑ์ที่ตัดแบ่งสูงสุด
เราจะได้รับรายการจำนวนเต็ม p1, ... , pk (ไม่จำเป็นต้องชัดเจน) โดยที่แต่ละค่ามีค่าระหว่าง 1 ถึง 9 การใช้แต่ละ p1, ... , pk เพียงครั้งเดียวเราสามารถสร้างการเรียงตัวของตัวเลขเพื่อให้ได้รายการตัวเลขใหม่ จากนั้นเราจะส่งออกผลิตภัณฑ์ของรายการใหม่นี้ เป้าหมายคือเพื่อเพิ่มผลิตภัณฑ์นี้โดยการเลือกการต่อข้อมูลที่ดีที่สุดของตัวเลข ตัวอย่างเช่นเราได้รับรายการ: 2 3 2 (คั่นด้วยช่องว่าง) เราสามารถสร้างการเรียงต่อกันดังต่อไปนี้: 2 3 2(ผลิตภัณฑ์ของการต่อข้อมูลเหล่านี้คือ12) 23 2(ผลิตภัณฑ์คือ46) 32 2(ผลิตภัณฑ์คือ64) 22 3(ผลิตภัณฑ์คือ66) เนื่องจากผลิตภัณฑ์ที่ใหญ่ที่สุดที่เราสามารถทำการต่อกันได้คือ 66 เราจึงส่งออก กฎ: ต้องมีการคูณอย่างน้อยหนึ่งรายการ (เช่นคุณไม่สามารถต่อตัวเลขและเอาท์พุททั้งหมดเข้าด้วยกันได้) คุณไม่สามารถใช้โอเปอเรเตอร์อื่นนอกเหนือจากการคูณหรือใส่วงเล็บเป็นต้น สมมติว่ารายการจำนวนเต็มที่กำหนดถูกคั่นด้วยช่องว่างและจำนวนเต็มทั้งหมดมีค่าระหว่าง 1 ถึง 9 รหัสที่สั้นที่สุด (เป็นไบต์) ชนะ! กรณีทดสอบ: อินพุต: 1 …

2
แบ่งพาร์ติชั่นรายการ!
ในความท้าทายนี้คุณจะต้องแบ่งพาร์ติชันรายการโดยที่พาร์ติชั่นมีขนาดสูงสุดขนาดขั้นต่ำและขนาดที่ต้องการ ฉันจะใช้สัญลักษณ์(min,pref,max) เพื่อระบุขนาดในการท้าทายนี้ สำหรับผู้ที่ไม่คุ้นเคยกับการแบ่งพาร์ติชันรายการต่อไปนี้ได้รับการแบ่งพาร์ติชันออกเป็น 3 ส่วน: [0..9] -> [[0,1,2],[3,4,5],[6,7,8]] [0..10], (2,4,5) -> [[0,1,2,3],[4,5,6],[7,8,9]]เมื่อรายการที่ไม่เท่ากันหารคุณต้องพาร์ทิชันที่จะใกล้เคียงกับขนาดที่ต้องการเป็นไปได้: การแบ่งพาร์ติชั่นนี้ทำได้ดีกว่า[[0,1,2,3],[4,5,6,7],[8,9]]แม้ว่าจะมีความยาวที่ต้องการมากกว่าก็ตาม อย่างเป็นทางการเราต้องลดผลรวมของ(partitionLength-preferredSize)^2แต่ละพาร์ติชันให้น้อยที่สุด ลำดับของความยาวพาร์ติชั่นไม่สำคัญ: สำหรับไม่ว่า[0..5], (2,3,3)จะเป็น[[0,1,2],[3,4]]หรือใช้[[0,1],[2,3,4]]งานได้ [0..7], (4,4,5) -> []ถ้าพาร์ติชันไม่มีความเป็นไปได้กลับอาร์เรย์ที่ว่างเปล่า คุณสามารถสันนิษฐานได้ว่า1<=min<=pref<=maxและอาร์เรย์ที่ส่งถึงคุณนั้นเป็นอาร์เรย์จำนวนเต็มที่ไม่ว่างเปล่า อาร์เรย์จะเป็นอาร์กิวเมนต์แรกเสมอ คุณสามารถยอมรับ min, max, และ pref ในลำดับใดก็ได้และเป็น tuple หรือเป็นอาร์กิวเมนต์ที่แยกกัน โปรแกรมของคุณต้องทำงานภายในไม่กี่วินาที โดยทั่วไปไม่อนุญาตให้วนซ้ำทุกขนาดพาร์ติชันที่เป็นไปได้ภายในขอบเขต กรณีทดสอบ: [1], (1,3,4) -> [[1]] [100], (1,2,3) -> [[100]] [1,2], (1,1,2) -> [[1],[2]] [1,2], (1,2,2) -> …

2
นักภาษาศาสตร์ที่ไม่มีจิตใจ
พื้นหลัง เพื่อนของคุณนักภาษาศาสตร์ได้บันทึกและวิเคราะห์ตัวอย่างบทสนทนาง่ายๆในภาษาต่างๆ พวกเขาลืมไปแล้วว่ามีตัวอย่างภาษาอะไรบ้างคุณต้องช่วยพวกเขาด้วยการสร้างโปรแกรมที่วิเคราะห์โครงสร้างประโยคและกฏที่เป็นไปไม่ได้ อินพุต ข้อมูลของคุณเป็นสตริงที่ไม่ว่างเปล่าที่มีตัวละครSVOซึ่งยืนสำหรับเรื่อง , คำกริยาและวัตถุ มันแสดงให้เห็นตัวอย่างการสนทนาการวิเคราะห์โดยนักภาษาศาสตร์ เอาท์พุต งานของคุณคือการแบ่งสตริงออกเป็นประโยคและป้อนจุด.หลังจากแต่ละประโยค ประโยคมีทั้งคำกริยาคำกริยาและหัวเรื่องหรือคำกริยาหัวเรื่องและวัตถุ อย่างไรก็ตามคุณไม่ทราบว่าคำสั่งใดที่ภาษาต้นฉบับใช้ ภาษาอังกฤษใช้เรื่องกริยาวัตถุแต่ภาษาอื่น ๆ เช่นภาษาละตินใช้เรื่องวัตถุกริยา ในความเป็นจริงการเรียงสับเปลี่ยนทั้งหกนั้นมีอยู่ในภาษาธรรมชาติดังนั้นคุณต้องตรวจสอบแต่ละอัน ผลลัพธ์ของคุณจะต้องประกอบด้วยสตริงที่คั่นด้วยการขึ้นบรรทัดใหม่แต่ละคำสั่งที่ใช้บังคับโคลอน:และสตริงอินพุตที่แบ่งออกเป็นประโยคตามลำดับนั้น หากไม่สามารถแยกสตริงได้ในลำดับของคำศัพท์บรรทัดที่เกี่ยวข้องจะถูกตัดออก ลำดับของบรรทัดไม่สำคัญและรับประกันได้ว่าคำสั่งอย่างน้อยหนึ่งคำสามารถแยกวิเคราะห์ได้ ตัวอย่าง พิจารณาอินพุต VSVOSV ในVOSการสั่งซื้อ snipped สามารถแยกวิเคราะห์เป็นVS.VOS.V.และในการสั่งซื้อก็สามารถแยกวิเคราะห์เป็นSVO V.SVO.SV.คำสั่งOSVนี้ยังใช้งานได้และเอาต์พุตเต็มรูปแบบคือ VOS:VS.VOS.V. SVO:V.SVO.SV. OSV:V.SV.OSV. กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต อนุญาตให้ใช้นิพจน์ทั่วไปและบิวด์อินทั้งหมดได้ กรณีทดสอบ Input: V Output: VSO:V. VOS:V. SVO:V. OVS:V. SOV:V. OSV:V. Input: SVV Output: SVO:SV.V. SOV:SV.V. OSV:SV.V. Input: …

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