คำถามติดแท็ก parsing

แท็กนี้แสดงถึงความท้าทายที่การแยกวิเคราะห์อินพุตมีขนาดใหญ่ / ส่วนหลักของความท้าทาย

25
ขยายอาร์เรย์ C
ในภาษาการเขียนโปรแกรม C มีการกำหนดอาร์เรย์ดังนี้: int foo[] = {4, 8, 15, 16, 23, 42}; //Foo implicitly has a size of 6 ขนาดของอาร์เรย์ถูกอนุมานจากองค์ประกอบการเริ่มต้นซึ่งในกรณีนี้คือ 6 คุณยังสามารถเขียนอาร์เรย์ C ด้วยวิธีนี้ปรับขนาดอย่างชัดเจนแล้วกำหนดขนาดองค์ประกอบตามลำดับ int foo[6]; //Give the array an explicit size of 6 foo[0] = 4; foo[1] = 8; foo[2] = 15; foo[3] = 16; foo[4] = 23; foo[5] …
36 code-golf  string  parsing  c 

8
อ่าน ASCII-Art Text
แรงบันดาลใจจากGolf ฉันเป็นตัวอักษร ASCIIซึ่งความท้าทายนี้ (เกือบ) ตรงกันข้ามโดยตรง งาน: ใช้สตริงของข้อความ ASCII-art และส่งออกเนื้อหาของข้อความเป็นข้อความ ASCII ปกติ การป้อนข้อมูล: สตริงของข้อความศิลปะ ASCII ข้อมูลที่ป้อนจะมีอินสแตนซ์ของอักขระ ASCII #ช่องว่างและขึ้นบรรทัดใหม่ 4 หรือ 5 บรรทัดเท่านั้น ทุกบรรทัดมีความยาวเท่ากัน (นั่นคือตัวอักษร ASCII-art ตัวสุดท้ายจะถูกเติมด้วยช่องว่างต่อท้าย) คุณสามารถใช้อักขระ ASCII ที่พิมพ์ได้อื่นแทน#การป้อนข้อมูลหากคุณต้องการ ข้อมูลที่ป้อนจะมีตัวอักษรA-ZASCII-art และช่องว่าง ASCII-art (ช่องว่าง 5x5 บล็อก) ไม่มีเครื่องหมายวรรคตอน มีข้อความศิลปะ ASCII เพียงบรรทัดเดียวเท่านั้น (5 บรรทัดจริง) จะไม่มีช่องว่างต่อท้ายหรือนำหน้าด้วย ASCII และจะไม่มีช่องว่าง ASCII-art ที่อยู่ติดกัน ขนาดตัวอักษรคือ 5x5 ตัวอักษร มีช่องว่างระหว่างตัวอักษรแต่ละตัว 1x5 …

28
โปรดปล่อยฉัน!
ในฐานะนักกอล์ฟเราไม่คุ้นเคยกับการปล่อย ( แน่นอน ) เราจะต้องมีเครื่องมือสองสามอย่างเพื่อช่วยให้เราทำเช่นนั้น แน่นอนว่าเพื่อช่วยทำการตลาดรุ่นใหม่เราจำเป็นต้องมีเวอร์ชั่นที่ดีและเป็นประกาย ใครไม่ตื่นเต้นเมื่อได้ยินเกี่ยวกับเวอร์ชัน 3.0.0 งาน งานของคุณคือการเขียนโปรแกรม / กิจวัตร / ... เพื่อเพิ่มหมายเลขรุ่น คุณต้องเพิ่มหมายเลขรุ่นและรีเซ็ต "สำคัญน้อยกว่า" (เช่นเวอร์ชันของโปรแกรมแก้ไข) คุณจะได้รับสองอาร์กิวเมนต์: เวอร์ชันปัจจุบัน (เช่น "1.0.3") เป็นสตริงและดัชนีที่จะรู้ว่าจะอัปเดตใด (อัปเดต 0 หรือ 1 ดัชนี) ตัวอย่างดัชนี 0: next-version("1.0.3", 0) # 2.0.0 next-version("1.2.3.4.5", 2) # 1.2.4.0.0 next-version("10.0", 0) # 11.0 next-version("3", 0) # 4 next-version("1", 7) # ERROR …

18
รหัสการทำให้เป็นสุริยวรมัน
ความท้าทายคือการทำให้รหัสโรมันเป็นรหัสที่ถูกต้องในภาษาที่คุณเลือก พวกเขาไม่ควรปรากฏภายในสตริงหรือสิ่งอื่นที่คล้ายกัน แต่ทำงานเหมือนกับโทเค็นอื่น ๆตัวอักษรเช่นตัวเลข( อาหรับ ) ตัวละครหรือสตริง หรือตัวระบุตัวแปร / วิธี / ฟังก์ชั่น ฯลฯ ตัวอย่างเช่นใน Java ต่อไปนี้จะต้องรวบรวมและเรียกใช้ราวกับว่าiได้รับการเริ่มต้น42: int i = XLII; การแยกวิเคราะห์ตัวเลขที่แท้จริงเป็นเรื่องรองดังนั้นคุณสามารถใช้ห้องสมุดได้หากคุณต้องการ แต่นี่เป็นการประกวดความนิยมดังนั้นจึงส่งเสริมให้มีความคิดสร้างสรรค์ คุณไม่สามารถใช้ภาษาใดก็ได้ที่ใช้ตัวเลขโรมันหากมีสิ่งนั้น โชคดี.

1
สร้างรหัส Pyramid Scheme
พีระมิดเป็นภาษาที่ถูกพัฒนาโดย@ ConorO'Brien ใน Pyramid Scheme โค้ดที่คุณเขียนมีลักษณะดังนี้: ^ ^ / \ /3\ / \ --- / + \ ^-------^ /9\ /3\ /123\ --- ----- ตอนนี้รหัสนั้นมีคุณสมบัติที่ชัดเจนสองประการ: มันยากที่จะแยกวิเคราะห์และยากที่จะเขียน Conor ได้แก้ไขปัญหาแรกแล้วอย่างไรก็ตามงานของคุณคือการแก้ไขปัญหาที่สอง โค้ดด้านบนนั้นประมวลผลโดยตัวแปล PyramidScheme ไปเป็นอาร์เรย์สตริงที่ซ้อนกันเช่นนี้ [["+", ["9123", "3"]], "3"] งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นซึ่งกำหนดสตริงที่ซ้อนกันเอาต์พุตหรือส่งคืนรหัส PyramidScheme ที่สร้างขึ้นใหม่ คุณอาจคิดว่าอาร์เรย์อินพุตจะใช้ได้เสมอ ปิรามิดเป็นสามเหลี่ยมหน้าจั่ว ด้านบนเป็น^ที่ลาดชันด้านแนวทแยงมุมไปด้วย/และและด้านล่างเป็น\ -มุมด้านล่างทั้งสองว่างเปล่าหรือมีจุดเริ่มต้นของปิรามิดอื่นซึ่งเป็นข้อโต้แย้ง ตรงกลางเต็มไปด้วยชื่อของปิรามิดโดยไม่สนใจการแบ่งบรรทัด นี่คือวิธีที่ parser แปลงรหัสเป็นรูปแบบที่ใช้งานได้ ก่อนอื่นมันจะตรวจหาปิรามิดระดับบนสุด หากไม่มีข้อโต้แย้งมันจะแสดงถึงมันด้วยสตริงเดียวและย้ายไป มิฉะนั้นมันหมายถึงเป็นอาร์เรย์หรือ["name",[arg1,arg2]] ["name",[arg1]]อาร์กิวเมนต์คือปิรามิดที่ด้านล่างซ้ายและขวาล่างของปิรามิดซึ่งอาจเป็นสตริงหรือมากกว่านั้นที่อธิบายไว้ข้างต้น คุณอาจสังเกตเห็นว่าสิ่งนี้ค่อนข้างคล้ายกับ …

6
ทำคะแนนเส้นทางการแกว่งเถาไวน์ของทาร์ซาน
เถาองุ่นโอลิมปิกดำเนินการตามปกติในต้นไม้มาตรฐาน โดยเฉพาะอย่างยิ่งแผนภูมิมาตรฐานnมีจุดยอดสำหรับการ0ขึ้นn-1และขอบการเชื่อมโยงจุดยอดที่ไม่ใช่ศูนย์แต่ละจุดaกับจุดยอดn % aด้านล่าง ตัวอย่างเช่นต้นไม้มาตรฐาน 5 มีลักษณะดังนี้: 3 | 2 4 \ / 1 | 0 เนื่องจากส่วนที่เหลือเมื่อ 5 ถูกหารด้วย 3 คือ 2 ส่วนที่เหลือเมื่อ 5 ถูกหารด้วย 2 หรือ 4 คือ 1 และส่วนที่เหลือเมื่อ 5 ถูกหารด้วย 1 คือ 0 ในปีนี้ทาร์ซานจะได้รับการปกป้องทองของเขากับการปฏิบัติใหม่ซึ่งแต่ละเริ่มต้นที่ยอดn - 1ชิงช้าจุดสุดยอดn - 2ยังคงจุดสุดยอดn - 3ฯลฯ 0จนในที่สุดเขาปลดจุดสุดยอด คะแนนสำหรับกิจวัตรประจำวันคือผลรวมของคะแนนสำหรับการสวิงแต่ละครั้ง (รวมถึงการลงจากหลังม้า) และคะแนนสำหรับการสวิงคือระยะทางภายในต้นไม้ระหว่างจุดเริ่มต้นและจุดสิ้นสุด ดังนั้นรูทีนของทาร์ซานบนต้นไม้มาตรฐาน 5 มีคะแนน …
32 code-golf  math  number  number-theory  code-golf  code-golf  restricted-source  programming-puzzle  css  code-golf  parsing  code-golf  random  encryption  code-golf  ascii-art  fractal  code-golf  math  code-golf  sorting  graph-theory  path-finding  permutations  code-golf  tetris  code-golf  card-games  code-golf  math  sequence  rational-numbers  code-golf  chess  code-golf  string  geometry  grid  code-golf  ascii-art  grid  code-golf  sequence  integer  code-golf  math  number-theory  packing  polyomino  code-golf  math  code-golf  string  quine  permutations  code-golf  math  code-golf  image-processing  optical-char-recognition  code-golf  string  kolmogorov-complexity  sequence  integer  code-golf  number  permutations  palindrome  code-golf  kolmogorov-complexity  code-golf  number  sequence  string  fewest-operations  code-golf  string  kolmogorov-complexity  sequence  primes  code-golf  string  ascii-art  code-golf  string  number  alphabet  code-golf  counting  code-golf  number  sequence  number-theory  primes  code-golf  subsequence  word-search 

9
ลบวงเล็บที่ไม่จำเป็นออก
0123456789+*()คุณจะได้รับสตริงประกอบกับตัวละคร คุณสามารถสันนิษฐานได้ว่าสตริงนั้นเป็นนิพจน์ทางคณิตศาสตร์ที่ถูกต้องเสมอ งานของคุณคือการลบวงเล็บที่ไม่จำเป็นโดยสมมติว่าการคูณนั้นมีลำดับความสำคัญสูงกว่าการเพิ่ม ควรลบวงเล็บออกเฉพาะเมื่อไม่จำเป็นต้องมีโครงสร้าง : เนื่องจากการคูณมีลำดับความสำคัญสูงกว่า: 3+(4*5)=>3+4*5 เนื่องจากการคูณหรือการเพิ่มการเชื่อมโยง: 3*(4*5)=>3*4*5 เมื่อพวกเขาซ้ำซ้อนรอบการแสดงออก: 3*((4+5))=>3*(4+5) ควรเก็บวงเล็บไว้เมื่อสามารถทำให้ง่ายขึ้นเนื่องจากค่าตัวเลขเฉพาะ: 1*(2+3) ไม่ควรทำให้ง่ายขึ้น 1*2+3 0*(1+0) ไม่ควรทำให้ง่ายขึ้น 0*1+0 ตัวอย่าง: (4*12)+11 ==> 4*12+11 (1+2)*3 ==> (1+2)*3 3*(4*5) ==> 3*4*5 ((((523)))) ==> 523 (1+1) ==> 1+1 1*(2*(3+4)*5)*6 ==> 1*2*(3+4)*5*6 1*(2+3) ==> 1*(2+3) 0*(1+0) ==> 0*(1+0) (((2+92+82)*46*70*(24*62)+(94+25))+6) ==> (2+92+82)*46*70*24*62+94+25+6

26
Fibonacci ผลรวมดิจิตอล
เราทุกคนคุ้นเคยกับลำดับฟีโบนักชี : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765 อย่างไรก็ตามแทนที่จะf(n) = f(n-1) + f(n-2)เราจะนำผลรวมดิจิตอลของ 2 รายการก่อนหน้า ลำดับควรเริ่มต้นด้วย0, 1หลังจากนั้นความแตกต่างจะปรากฏอย่างรวดเร็ว รายการนี้ได้รับการจัดทำดัชนี 0 คุณสามารถใช้ 1 ดัชนีเช่นกันซึ่งเป็นสถานะที่คุณใช้ f(0) = 0 f(1) = 1 f(2) = 1 # 0 + 1 …

30
สามเหลี่ยม ASCII
งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่พิมพ์รูปสามเหลี่ยม ASCII พวกเขามีลักษณะเช่นนี้: |\ | \ | \ ---- โปรแกรมของคุณจะมีการป้อนข้อมูลที่เป็นตัวเลขเดียวกับข้อ จำกัดn สามเหลี่ยมดังกล่าวข้างต้นมีมูลค่าของ0 <= n <= 1000n=3 สามเหลี่ยม ASCII จะมีnแบ็กสแลช ( \) และบาร์แนวตั้ง ( |), n+1เส้นและขีดกลาง ( -) และแต่ละบรรทัดจะมีจำนวนช่องว่างเท่ากับหมายเลขบรรทัด (อิงตาม 0, คือบรรทัดแรกคือบรรทัดที่ 0) นอกเหนือจากบรรทัดสุดท้าย . ตัวอย่าง: การป้อนข้อมูล: 4 เอาท์พุท: |\ | \ | \ | \ ----- การป้อนข้อมูล: 0 เอาท์พุท: ในกรณีทดสอบนี้ผลลัพธ์จะต้องว่างเปล่า …
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

20
แยกความคิดเห็นออกจากรหัสลับของฉัน
สัปดาห์ก่อนหน้านี้เราได้เรียนรู้เกี่ยวกับวิธีจัดรูปแบบภาษาลึกลับเพื่อแสดงความคิดเห็น วันนี้เราจะทำอินเวอร์สของสิ่งนั้น ฉันต้องการให้คุณเขียนโปรแกรมหรือฟังก์ชั่นที่แยกวิเคราะห์รหัสลับที่มีความคิดเห็นดีและแยกวิเคราะห์ความคิดเห็นโดยส่งคืนรหัส โดยใช้ตัวอย่างจากการท้าทายครั้งก่อนนี่คือสิ่งที่โค้ดที่มีความคิดเห็นดีมีลักษณะ: a #Explanation of what 'a' does bc #Bc d #d e #Explanation of e fgh #foobar ij #hello world k #etc. l #so on mn #and op #so forth นี่คือสิ่งที่คุณต้องทำเพื่อแยกรหัสออก ก่อนอื่นให้ลบตัวอักษรความคิดเห็น ( #) ช่องว่างข้างหน้าและทุกอย่างที่อยู่หลังตัวอักขระความคิดเห็น a bc d e fgh ij k l mn op จากนั้นยุบแต่ละบรรทัดขึ้นไปเป็นบรรทัดเดียว ยกตัวอย่างเช่นตั้งแต่bอยู่ในคอลัมน์ที่สองในบรรทัดที่สองเมื่อเรายุบมันขึ้นมันจะอยู่ในคอลัมน์ที่สองในบรรทัดหนึ่ง …

25
หุ่นยนต์บนบันได
พื้นหลัง ฉันมีบันไดพิงกำแพงและหุ่นยนต์ควบคุมจากระยะไกลที่สามารถปีนขึ้นไปได้ ฉันสามารถส่งคำสั่งต่าง ๆ ไปยังหุ่นยนต์ได้สามคำ: UP: หุ่นยนต์ก้าวขึ้นไปหนึ่งขั้น ถ้ามันอยู่ในขั้นตอนที่สูงที่สุดมันจะเดินทางไปตกหล่นและระเบิด DOWN: หุ่นยนต์ลงหนึ่งขั้น ถ้ามันเป็นขั้นตอนที่ต่ำที่สุดจะไม่มีอะไรเกิดขึ้น RESET: หุ่นยนต์กลับไปที่ขั้นต่ำสุด ฉันยังสามารถส่งชุดคำสั่งและหุ่นยนต์จะดำเนินการพวกเขาทีละคน งานของคุณคือทำนายการเคลื่อนไหว อินพุต ปัจจัยการผลิตของคุณเป็นจำนวนเต็มบวกNคิดเป็นจำนวนขั้นตอนในบันไดและสตริงไม่ว่างเปล่าCกว่าUDRคิดเป็นคำสั่งที่ผมได้ส่งไปยังหุ่นยนต์ N < 1000คุณสามารถสรุปได้ว่า หุ่นยนต์จะเริ่มต้นในขั้นตอนต่ำสุดของบันได เอาท์พุต มีการรับประกันว่าในบางจุดหุ่นยนต์จะปีนขึ้นไปบนขั้นสูงสุดและระเบิด เอาต์พุตของคุณคือจำนวนคำสั่งที่เรียกใช้ก่อนที่จะเกิดเหตุการณ์นี้ ตัวอย่าง พิจารณาอินพุตN = 4และC = "UDDUURUUUUUUUDDDD" หุ่นยนต์ที่แสดงโดย@เคลื่อนที่ไปตามบันได 4 ขั้นตอนดังนี้: |-| |-| |-| |-| |-| |-| |-| |-| |-| |@| |-|| |-| |-| |-| |-| |-| |@| …

20
ค้นหาและหมุน
งาน นี่เป็นความท้าทายที่เรียบง่าย ข้อมูลที่คุณป้อนเป็นสตริงที่ไม่ว่างเปล่าหนึ่งบรรทัดมีเฉพาะตัวเลข0123456789และแฮช#เท่านั้น มันจะมีอีกหนึ่งการทำงานของตัวเลขซึ่ง encodes #ติดลบและอาจห่อรอบจุดสิ้นสุดของสตริงและที่หนึ่งอย่างน้อย จำนวนเต็มอาจมีเลขศูนย์นำหน้า ตัวอย่างเช่น##44##, 013####และ23###1เป็นปัจจัยการผลิตที่ถูกต้องในขณะที่###, 0099และ#4#4ไม่ได้ งานของคุณคือการดึงจำนวนเต็มnจากสตริงและส่งออกnขั้นตอนการหมุนสตริงไปทางขวา ตัวอย่าง การป้อนข้อมูลที่#1##ควรจะหมุนขั้นตอนที่ 1 ##1#ไปทางขวาเพื่อให้การส่งออกที่ถูกต้องคือ อินพุต#026###ควรหมุนไป 26 ขั้นตอนไปทางขวาเนื่องจากค่า 0 นำหน้าจะถูกละเว้น 26####0เอาท์พุทที่ถูกต้องคือ อินพุต1####2มีจำนวนเต็ม 21 ที่พันปลายดังนั้นจึงควรหมุน 21 ขั้นไปทางขวา ##21##เอาท์พุทที่ถูกต้องคือ กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและไม่อนุญาตช่องโหว่มาตรฐาน คุณสามารถสันนิษฐานได้ว่าตัวเลขนั้นnเหมาะกับintภาษามาตรฐานของคุณ ตรงกันข้ามถ้าว่ามาตรฐานintการดำเนินการประเภทความแม่นยำ arbitrary จำนวนเต็มคุณต้องรองรับ (ในทางทฤษฎี) nความใหญ่พล กรณีทดสอบ #1## -> ##1# ##4## -> #4### 1####1 -> ####11 1####2 -> ##21## #026### …

3
ช่วยด้วย! เครื่องคิดเลขของฉันพัง! (เปลี่ยนนิพจน์จำนวนเต็มเป็นการกดปุ่มเครื่องคิดเลข)
บทนำ ช่วยด้วย! ฉันเผลอทิ้งเครื่องคิดเลข TI-84 ของฉันออกไปนอกหน้าต่าง (ไม่ต้องถามว่าทำอย่างไร) และมันก็พัง ฉันมีการทดสอบทางคณิตศาสตร์ในวันพรุ่งนี้และเครื่องคิดเลขเพียงตัวเดียวที่ฉันพบคือปุ่มที่มี: 7 8 9 + 4 5 6 - 1 2 3 * 0 = / แบบทดสอบคณิตศาสตร์ของฉันคือแบบทดสอบทบทวนการประเมินผลนิพจน์ ฉันต้องการโปรแกรมเพื่อแสดงออกเช่น1+(5*4)/7และแปลงเป็นการกดแป้นที่จำเป็นในการแก้ปัญหาในเครื่องคิดเลขสำรองของฉัน (และในกรณีที่คุณสงสัยสิ่งนี้เกิดขึ้นกับฉันจริง ๆ ) ท้าทาย ได้รับสายเข้าไม่ว่างเปล่าที่มีเพียงตัวละคร0-9, (, ), +, -, *และ/การส่งออกการกดแป้นพิมพ์ในสตริงพื้นที่แยกออกจากกัน (เช่น. 1 + 3 / 3 =) จะต้องมีเครื่องหมายเท่ากับเสมอในตอนท้ายของเอาต์พุต ไม่อนุญาตช่องโหว่มาตรฐาน ตัวอย่าง: อินพุต: 1+(5*4)/7, เอาต์พุต:5 * 4 …

10
การตัดสินใจของซานต้า
การตัดสินใจของซานต้า: ในความท้าทายนี้คุณจะช่วยให้ซานตาคลอสตัดสินใจว่าใครบางคนที่อยู่ในรายชื่อของพวกเขาได้รับซนหรือดีและต่อมาได้รับหรือcoaltoys แต่น่าเสียดายที่ซานตาวุ่นวายในบางส่วนของรายการของเขาnaughty, nice และnameสาขาที่อยู่ในคำสั่งที่ไม่ถูกต้อง อินพุต อินพุตจะมาในรูปแบบต่อไปนี้ซึ่งสามารถเปลี่ยนได้ ชื่อของบุคคล (ต้องไม่มีเครื่องหมายโคลอนเท่านั้นa-zA-Z0-9) คำนั้นnaughtyตามด้วยเครื่องหมายโคลอนโดยตรงและจำนวนเต็มที่ไม่เป็นลบซึ่งแสดงถึงจำนวนครั้งที่ซานต้าจับคุณได้ว่าเป็นคนซน คำนั้นniceตามด้วยเครื่องหมายโคลอนโดยตรงและเลขจำนวนเต็มที่ไม่เป็นลบซึ่งแสดงถึงจำนวนครั้งที่ซานต้าจับคุณได้ดี ทั้งหมดคั่นด้วยช่องว่างเดียว (ASCII 32) ระหว่างแต่ละรายการ นอกจากชื่อจะมีช่องว่างระหว่างส่วนของชื่อไม่มี->Santa ClausSantaClaus โบนัส: (25%) : เขาเป็นซานตาคลอสดังนั้นเขาจึงต้องตรวจสอบรายการสองครั้งและตรวจสอบให้แน่ใจว่าไม่มีรายการที่ซ้ำกัน (ในกรณีนี้มันเพิ่งได้คะแนนแรกที่ผู้ใช้มี) ตัวอย่าง: Quill naughty:4 nice:0 naughty:0 Doorknob nice:3 naughty:2 Quill nice:6 nice:3 balpha naughty:3 pops nice:4 naughty:2 เอาท์พุท: ผลลัพธ์ควรประกอบด้วย: ชื่อของบุคคลตามด้วย: หากมีคะแนนมากกว่าnaughtyนี้ให้ทำcoalดังนี้ ถ้ามีจุดอื่น ๆ ในแล้วnicetoys แต่ถ้าnaughtyและniceเท่ากันแล้วneeds more data ตัวอย่างผลลัพธ์: ด้วยโบนัสองค์กรและโบนัสลบซ้ำ: …

1
นับข้อผิดพลาดการสะกดในข้อความ ลดจำนวนข้อผิดพลาดการสะกดคำในรหัสของคุณ
เขียนโปรแกรมหรือฟังก์ชั่นที่รับสองอินพุต: ข้อความตัวอักษร พจนานุกรมภาษาอังกฤษตามที่ปรากฏในไฟล์ Github นี้ (มีประมาณ 60000 คำ) และส่งออกจำนวนข้อผิดพลาดการสะกดคำในข้อความ (ดูด้านล่างสำหรับคำจำกัดความและกรณีทดสอบ) คุณสามารถรับพจนานุกรมเป็นพารามิเตอร์ในการทำงานของคุณในฐานะไฟล์ที่กำหนดไว้ล่วงหน้าซึ่งโปรแกรมของคุณคาดหวังว่าจะค้นหาเป็นข้อมูลที่กำหนดโค้ดยากในรหัสของคุณหรือในลักษณะที่เหมาะสมอื่น ๆ รหัสของคุณควรมีลักษณะเหมือนข้อความตัวอักษรมีข้อผิดพลาดในการสะกดน้อยที่สุด ดังนั้นคุณจะคำนวณคะแนนของรหัสของคุณโดยป้อนให้ตัวเองเป็นอินพุต ผู้ชนะคือรหัสที่มีคะแนนต่ำสุด (คะแนนที่น้อยที่สุดคือ 0) หากมีหลายคำตอบด้วยคะแนนเดียวกันผู้ชนะจะถูกตัดสินโดยขนาดรหัส (เป็นตัวอักษร) หากคำตอบทั้งสองยังคงถูกผูกไว้ผู้ชนะคือคำตอบก่อนหน้า หากจำเป็นคุณสามารถสมมติว่าข้อความอินพุตเป็น ASCII (ไบต์ 32 ... 126) โดยมีบรรทัดใหม่เข้ารหัสในลักษณะทั่วไป (1 ไบต์ "10" หรือ 2 ไบต์ "13 10") และไม่ว่างเปล่า อย่างไรก็ตามหากรหัสของคุณมีอักขระที่ไม่ใช่ ASCII ก็ควรสนับสนุนการป้อนข้อมูลที่ไม่ใช่ ASCII (เพื่อให้สามารถคำนวณคะแนนของตัวเอง) อักขระแบ่งออกเป็นคลาสต่อไปนี้: ตัวอักษร a ... z และ A ... Z …

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