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

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

19
ชื่อเรื่องที่เป็นมิตรกับ URL
ผู้คนในไซต์นี้ชอบที่จะตกแต่งชื่อโพสต์ของตน ... Stewie's sequence: + * - / + * - / อย่างไรก็ตามเมื่อชื่อเรื่องนี้จะต้องรวมอยู่ใน URL ของหน้ามันจะง่ายขึ้น: stewies-sequence ความท้าทาย งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่ให้สตริงที่เป็นตัวแทนของชื่อโพสต์เอาท์พุท / ส่งกลับการแปลง "เป็นมิตรกับ URL" อัลกอริทึมคือ: แปลงเป็นตัวพิมพ์เล็ก (ถ้ามี) แทนที่ทุกช่องว่าง ( ), จุด ( .), เครื่องหมายจุลภาค ( ,) หรือเครื่องหมายทับ ( /) ด้วยเส้นประ ( -) ลบอักขระที่ไม่ใช่ตัวอักษรและตัวเลขยกเว้นเครื่องหมายขีดกลาง ลดขนาดกลุ่มของเครื่องหมายขีดคั่นที่อยู่ติดกัน ( a---b -> a-b) ลบสิ่งที่นำหน้า / ต่อท้าย โปรดทราบว่าอัลกอริทึมนี้เป็นการทำให้เข้าใจง่ายและอาจไม่ให้ผลลัพธ์ที่เหมือนกันกับวิธีการที่แท้จริงของเว็บไซต์ …

27
แยกซีตัวอักษรจำนวนเต็ม C ++ 14
อ้างอิงจากhttp://en.cppreference.com/w/cpp/language/integer_literalตัวอักษรจำนวนเต็มประกอบด้วยทศนิยม / ฐานสิบหก / ฐานแปด / เลขฐานสองตัวอักษรและส่วนต่อท้ายที่เป็นตัวเลือกซึ่งเห็นได้ชัดว่าไม่จำเป็นอย่างสมบูรณ์เสียค่าล้ำค่าและเป็น ไม่ได้ใช้ในการท้าทายนี้ a non-zero decimal digit (1, 2, 3, 4, 5, 6, 7, 8, 9), followed by zero or more decimal digits (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)ทศนิยมที่แท้จริงคือ the digit zero (0) followed by zero or more octal digits (0, …

30
ตัวแปลงเวลา 12 ชั่วโมงถึง 24 ชั่วโมง
น่าแปลกใจที่งานง่าย ๆ นี้ดูเหมือนจะยังไม่มีอยู่ดังนั้น ... งานของคุณคือการเขียนโปรแกรมที่ใช้เวลาในการป้อนข้อมูลเป็นเวลา 12 ชั่วโมงและแปลงเป็น "เวลาทหาร" หรือรูปแบบเวลา 24 ชั่วโมง ข้อมูลที่ป้อนจะอยู่ในรูปแบบ: HH:MM am/pm แม้ว่าจะอนุญาตให้มีการเปลี่ยนแปลงเล็กน้อย: พื้นที่ที่แยก am / pm จากเวลาที่เหลือเป็นทางเลือก ส่วนสุดท้ายอาจเป็น "am" / "pm" หรือ "a" / "p" การใช้อักษรตัวพิมพ์ใหญ่ใด ๆ ก็ใช้ได้ เอาท์พุทจะเป็นเวลาที่ป้อนเข้าจะถูกแปลงเป็นรูปแบบ 24 ชั่วโมง มันอาจเป็นตัวเลขหรือสตริงก็ได้ สำหรับทั้งอินพุตและเอาต์พุต: 0s ในตอนแรกเป็นตัวเลือก 0s ใน 3 สถานที่สุดท้ายมีผลบังคับใช้ ตัวคั่นคั่นชั่วโมงและนาทีอาจเป็น ":", "" (ช่องว่าง) หรือไม่มีอะไร หมายเหตุอื่น ๆ : …

9
ถอดรหัสรายการไดเรกทอรี Microsoft MS-DOS 5.0 FAT
ระบบไฟล์ Microsoft FAT มีตารางไดเรกทอรีเพื่อแสดงว่า "ไฟล์" ใดที่อยู่ใน "โฟลเดอร์" บนดิสก์ ในขณะนั้นรายการเหล่านี้อัดแน่นข้อมูลจำนวนมากเป็นบิตจำนวนเล็กน้อย มีข้อกำหนดทางเทคนิคมากมายเกี่ยวกับWikiสำหรับผู้อยากรู้อยากเห็น แต่ความท้าทายที่นี่จะมุ่งเน้นไปที่การถอดรหัส "แบบง่าย" ของรายการ แต่ละรายการประกอบด้วยคำไบนารี 32 ไบต์แบ่งออกเป็นหลายส่วน เพื่อความสอดคล้องในการท้าทายนี้เราจะใช้ MS-DOS 5.0 รุ่นไบต์มีการสั่งซื้อเป็นendian ใหญ่และเรากำลังเรียกไบต์0x00เป็นซ้ายสุดและไบต์0x1Fเป็นขวาที่สุด ด้านล่างนี้เป็นแผนผังโดยย่อของส่วนที่เกี่ยวข้องและสิ่งที่ควรเป็นผลลัพธ์สำหรับแต่ละส่วน (เป็นตัวหนา ) 11 ไบต์แรกเป็นชื่อไฟล์ในรูปแบบ ASCII (นี่คือที่ชื่อไฟล์ 8.3 ที่มีชื่อเสียงมาจาก - 8 ไบต์สำหรับชื่อไฟล์, 3 ไบต์สำหรับส่วนขยาย) เหล่านี้คือการเข้ารหัส ASCII แบบตรงและควรมีเอาต์พุตเป็น ASCII ที่มีเครื่องหมายจุด (.) อยู่ระหว่างนั้น หมายเหตุ: ทั้งส่วนที่ 8 และ 3 นั้นบุด้วยช่องว่างเพื่อให้เข้าได้เต็มความยาว การส่งออกควรละเว้นช่องว่าง (เช่นอย่าส่งออก) …

18
ตัวเลขที่มีการหมุนสมมาตร
ได้รับจำนวนเต็มส่งออกtruthyค่าถ้ามันเป็นเช่นเดียวคว่ำลง (หมุน 180 องศา) หรือfalsyคุ้มค่าเป็นอย่างอื่น 0, 1และ8มีความสมมาตรในการหมุน 6กลายเป็น9และในทางกลับกัน ลำดับของตัวเลขที่ให้ผลลัพธ์ที่แท้จริง: OEIS A000787 0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, …
27 code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

10
แยกวิเคราะห์ Quaternion
หากคุณยังไม่ทราบ quaternion นั้นเป็นตัวเลข 4 ส่วน สำหรับจุดประสงค์ของการท้าทายนี้มันมีองค์ประกอบจริงและส่วนประกอบจินตภาพสามประการ ส่วนประกอบจินตนาการโดยมีตัวแทนต่อท้ายi, ,j kยกตัวอย่างเช่น1-2i+3j-4kเป็น quaternion กับ1การเป็นองค์ประกอบจริงและ-2, 3และ-4เป็นส่วนประกอบในจินตนาการ ในการท้าทายนี้คุณจะต้องแยกวิเคราะห์รูปแบบสตริงของ quaternion (เช่น"1+2i-3j-4k") ในรายการ / อาร์เรย์ของค่าสัมประสิทธิ์ (เช่น[1 2 -3 -4]) อย่างไรก็ตามสตริง quaternion สามารถจัดรูปแบบได้หลายวิธี ... อาจเป็นเรื่องปกติ: 1+2i-3j-4k มันอาจจะมีเงื่อนไขที่ขาดหายไป: 1-3k, 2i-4k(หากคุณมีคำขาดหายไปเอาท์พุท0สำหรับเงื่อนไขเหล่านั้น) มันอาจจะมีค่าสัมประสิทธิ์ขาดหายไป: i+j-k(ในกรณีนี้นี้จะเทียบเท่ากับ1i+1j-1kในคำอื่น ๆ . i, jหรือkโดยไม่มีหมายเลขในด้านหน้าจะถือว่ามี1ในหน้าโดยค่าเริ่มต้น) อาจไม่เป็นไปตามลำดับที่ถูกต้อง: 2i-1+3k-4j สัมประสิทธิ์อาจเป็นจำนวนเต็มหรือทศนิยม: 7-2.4i+3.75j-4.0k มีบางสิ่งที่ควรทราบในขณะที่การแยกวิเคราะห์: จะมี+หรือ-ระหว่างเงื่อนไขเสมอ คุณจะถูกส่งผ่านการป้อนข้อมูลที่ถูกต้องเสมอด้วยอย่างน้อย 1 เทอมและไม่มีตัวอักษรซ้ำ (ไม่มีj-j) ตัวเลขทั้งหมดสามารถสันนิษฐานได้ว่าถูกต้อง คุณสามารถเปลี่ยนตัวเลขลงในอีกรูปแบบหนึ่งหลังจากแยกถ้าคุณต้องการ (อดีต. …

4
ย้อนกลับ regex
ความท้าทาย ให้ regex ที่ถูกต้อง, ส่งออก regex ที่ตรงกับชุดของสตริงเดียวกัน, แต่กลับด้าน งาน ความท้าทายนี้ใช้มากที่สุดในการดำเนินงาน regex พื้นฐาน: ^, $, ?, +, *, [], ,{} |ไม่มีสิ่งเช่นกลุ่มจับภาพหรือสิ่งที่ซับซ้อนใด ๆ สามารถหนีอักขระพิเศษได้ ตัวอย่างอินพุต / เอาต์พุต หมายเหตุ: จะไม่มีการป้อนข้อมูลที่ไม่ถูกต้องและมีคำตอบที่เป็นไปได้หลายประการสำหรับการป้อนที่กำหนด! Input | Sample Output -----------|------------- abc | cba tuv? | v?ut a(b|c) | (c|b)a 1[23] | [23]1 a([bc]|cd) | (dc|[bc])a ^a[^bc]d$ | ^d[^bc]a$ …

30
ถอดรหัส chmod
ท้าทาย กำหนดหมายเลขการอนุญาตเลขฐานแปดสามหลักให้ส่งออกการอนุญาตที่ได้รับ chmod บน UNIX OS การอนุญาตของไฟล์จะเปลี่ยนไปโดยใช้chmodคำสั่ง มีวิธีการใช้ chmod ที่แตกต่างกันเล็กน้อย แต่วิธีที่เราจะเน้นในวันนี้คือการใช้การอนุญาตแบบฐานแปด ตัวเลขสามหลักในหมายเลขสิทธิ์แสดงถึงบุคคลอื่น: ตัวเลขตัวแรกแสดงถึงการอนุญาตสำหรับผู้ใช้ ตัวเลขตัวที่สองหมายถึงการอนุญาตสำหรับกลุ่ม ตัวเลขสุดท้ายแสดงสิทธิ์ของผู้อื่น ถัดไปแต่ละหลักหมายถึงสิทธิ์ที่แสดงด้านล่างใน: Key: number | permission 7 | Read Write and Execute 6 | Read and Write 5 | Read and Execute 4 | Read only 3 | Write and Execute 2 | Write only 1 …

15
Transpile WordMath
เราทุกคนเห็น "maths hax" ออนไลน์ที่มีลักษณะเช่นนี้: Think of a number, divide by 2, multiply by 0, add 8. และด้วยเวทมนตร์ทุกคนก็จบลงด้วยหมายเลข 8! ภาษา ลองกำหนดภาษาการเขียนโปรแกรมที่ใช้ไวยากรณ์ของข้อความด้านบนเรียกว่า "WordMath" สคริปต์ WordMath ปฏิบัติตามแม่แบบนี้: Think of a number, <commandlist>. ซึ่งโดยทั่วไปหมายถึง: ใช้ตัวเลข (เป็นอินพุตจาก STDIN) เป็นตัวสะสมเริ่มต้นดำเนินการคำสั่งทั้งหมดที่อยู่บนมันและออกผลลัพธ์ คำสั่งถูกคั่นด้วยตัวคั่น,(เครื่องหมายจุลภาค + ช่องว่าง) คำสั่งที่ถูกต้องคือ(หมายเหตุที่#แสดงถึงจำนวนเต็มที่ไม่เป็นลบ :) : add #/ subtract #- เพิ่ม / ลบค่าจากตัวสะสม divide by #/ …

5
แยกวิเคราะห์ไวยากรณ์สองมิติ
พื้นหลัง อลิซและบ็อบกำลังสร้างภาษากอล์ฟเพื่อชนะการท้าทาย PPCG ทุกครั้ง อลิซต้องการสร้างภาษาสองมิติเช่น> <> แต่บ๊อบชอบไวยากรณ์ prefix-infix เหมือนใน J ในการประนีประนอมพวกเขาตัดสินใจที่จะสร้างภาษา prefix-infix สองมิติ โปรแกรมแยกวิเคราะห์เป็นความเจ็บปวดที่จะเขียนและพวกเขาต้องการความช่วยเหลือจากคุณ! ข้อกำหนดทางไวยากรณ์ ในภาษาของอลิซและบ๊อบมีตัวแปรซึ่งเป็นตัวแทนจากตัวอักษร ASCII ตัวพิมพ์เล็กa-zและฟังก์ชั่นA-Zซึ่งจะแทนด้วยตัวอักษรตัวพิมพ์ใหญ่ ASCII สามารถเรียกใช้ฟังก์ชันด้วยหนึ่งหรือสองอาร์กิวเมนต์ โปรแกรมเป็นตารางสี่เหลี่ยมของตัวอักษรa-zA-Zและช่องว่างและมุมบนด้านซ้ายไม่ต้องมีช่องว่าง นี่คือตัวอย่างของโปรแกรมที่ถูกต้อง: F Gy H R x เมื่อโปรแกรมจะแยกกันก็กลายเป็นแสดงออกของภาษาซี (C, Java, Python ... ) ที่มีตัวแปรตัวเดียวและบริการโทรฟังก์ชั่นในรูปแบบที่หรือ<func>(<arg>) <func>(<arg1>,<arg2>)ตัวอย่างเช่นโปรแกรมข้างต้นให้ผลลัพธ์ในนิพจน์นี้: F(H(R(x)),G(x,y)) รายละเอียดของกระบวนการแยกวิเคราะห์เป็นดังนี้: ช่องว่างเป็นเพียงฟิลเลอร์ดังนั้นพวกเขาจึงไม่แยกวิเคราะห์ ตัวแปรทุกตัวa-zจะถูกวิเคราะห์คำเหมือนตัวเองเสมอ ทุกฟังก์ชั่นA-Zจะถูกแยกวิเคราะห์เป็นการเรียกใช้ฟังก์ชัน อาร์กิวเมนต์ของมันคือนิพจน์ที่ใกล้เคียงที่สุดที่อยู่ด้านล่างและทางขวาในกริดตามลำดับนี้ หากมีสิ่งใดสิ่งหนึ่งเหล่านี้อยู่ก็จะได้รับเป็นอาร์กิวเมนต์เพียงอย่างเดียว คุณสามารถสันนิษฐานได้ว่าฟังก์ชั่นทั้งหมดมีอาร์กิวเมนต์อย่างน้อยหนึ่งรายการในตาราง ในตัวอย่างข้างต้นตัวแปรxและการyแยกวิเคราะห์เป็นตัวเอง ฟังก์ชันRไม่มีอะไรด้านล่างและxทางด้านขวาดังนั้นจึงแยกวิเคราะห์เป็นการเรียกใช้อาร์กิวเมนต์R(x)เดียว ในทำนองเดียวกันHจะแยกเป็นH(R(x))เพราะมันมีRด้านล่าง ฟังก์ชั่นGที่มีxอยู่ด้านล่างและyไปทางขวาของตนเพื่อให้มันแยกวิเคราะห์เป็นและในทำนองเดียวกันสำหรับG(x,y) Fการแยกวิเคราะห์นิพจน์ที่มุมซ้ายบนเป็นผลลัพธ์ของกระบวนการแยกวิเคราะห์ อินพุตและเอาต์พุต การป้อนข้อมูลของคุณเป็นอาร์เรย์อักขระที่ไม่ว่างเปล่า …

9
De-Parenthesizing สตริง
กำหนดสตริงที่วงเล็บให้ถูกต้องเป็นอินพุตเอาต์พุตรายการของสตริงย่อยที่ไม่ว่างทั้งหมดภายในวงเล็บที่ตรงกัน แต่ละสตริงย่อยควรเป็นลำดับของอักขระในวงเล็บที่ตรงกันตรงกันทุกประการ ควรระบุรายการซับสเตอรตามลําดับความลึกและแสดงซับสตริปที่มีความลึกเท่ากันตามลําดับที่เกิดขึ้นในสตริง สมมติว่าอินพุตถูกวงเล็บอย่างถูกต้องเสมอ คุณอาจสันนิษฐานว่าอินพุตมีตัวอักษรและวงเล็บ ASCII ตัวพิมพ์เล็กเท่านั้น คำตอบของคุณควรเป็นฟังก์ชั่นที่ส่งคืนรายการสตริง ตัวอย่าง: 'a(b)c(d)e' -> ['ace', 'b', 'd'] 'a(b(c)d)e' -> ['ae', 'bd', 'c'] 'a((((b))))' -> ['a', 'b'] 'a()b' -> ['ab'] '' -> [] 'a' -> ['a'] '(((a(b)c(d)e)f)g)h' -> ['h', 'g', 'f', 'ace', 'b', 'd'] 'ab(c(((d)ef()g)h()(i)j)kl)()' -> ['ab', 'ckl', 'hj', 'efg', 'i', 'd'] ไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ

3
ใช้การจัดช่องไฟแบบง่าย
บทนำ การจัดช่องไฟหมายถึงการปรับระยะห่างระหว่างตัวอักษรของข้อความ ยกตัวอย่างพิจารณาคำที่Topเขียนด้วยร่ายมนตร์ต่อไปนี้สามอัน: ##### ..... ..... ..#.. ..... ..... ..#.. ..##. .###. ..#.. .#..# .#..# ..#.. .#..# .#..# ..#.. ..##. .###. ..... ..... .#... ..... ..... .#... เราสามารถเติมช่องว่างระหว่างร่ายมนตร์ด้วยจุดแล้วเติมลงไปได้ แต่ช่องว่างก็ดูกว้างเกินไป แต่เราเลื่อนร่ายมนตร์ไปทางซ้ายเพื่อให้พวกมันสัมผัสเกือบ: #####........ ..#.......... ..#..##..###. ..#.#..#.#..# ..#.#..#.#..# ..#..##..###. .........#... .........#... มันดูดีขึ้นมาก! หมายเหตุวิธีบาร์ของด้านบนของเส้นขอบด้านซ้ายของT oในการท้าทายนี้งานของคุณคือการใช้โปรแกรมการจัดช่องไฟอย่างง่ายสำหรับร่ายมนตร์รูปสี่เหลี่ยมผืนผ้าดังกล่าว กระบวนการจัดช่องไฟ พิจารณาสองสี่เหลี่ยม 2D อาร์เรย์ของตัวอักษร.และ#รูปทรงเดียวกัน ในขั้นตอนการจัดช่องไฟอย่างง่ายของเราอันดับแรกเราวางอาร์เรย์แบบเรียงต่อกันโดยมีคอลัมน์หนึ่งคอลัมน์.อยู่ระหว่างกัน จากนั้นเราย้ายแต่ละรายการ#ในอาเรย์ขวาหนึ่งก้าวไปทางซ้ายจนกระทั่ง#อาเรย์ซ้ายและขวาบางอันอยู่ติดกันแบบมุมฉากหรือแนวทแยงมุม ผลลัพธ์ของการจัดช่องไฟเป็นขั้นตอนก่อนที่เราจะแนะนำ#s ที่อยู่ติดกัน งานของคุณคือการใช้กระบวนการนี้ …
24 code-golf  grid  code-challenge  atomic-code-golf  code-golf  combinatorics  probability-theory  card-games  code-golf  number  geometry  code-golf  decision-problem  chess  code-golf  math  number  sequence  code-golf  string  regular-expression  code-golf  arithmetic  integer  code-golf  math  array-manipulation  code-golf  number  decision-problem  integer  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  decision-problem  graph-theory  binary-matrix  code-golf  string  parsing  code-golf  string  code-golf  morse  code-golf  code-golf  string  code-golf  ascii-art  cellular-automata  code-golf  binary  base-conversion  code-golf  arithmetic  decision-problem  integer  checksum  code-golf  matrix  linear-algebra  code-golf  code-golf  game  code-golf  sequence  binary  code-golf  combinatorics  optimization  code-golf  decision-problem  quine  code-golf  rational-numbers  bitwise  code-golf  string  permutations  code-golf  kolmogorov-complexity  unicode  code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

14
แยกวิเคราะห์พัสดุ
ด้วยความช่วยเหลือของคุณในการทำเครื่องหมายท้าทายอีเมลของฉัน PPCG-Post ได้ทำการประทับตราพัสดุทั้งหมดด้วยบาร์โค้ดที่สร้างเสร็จเรียบร้อยแล้ว! ตอนนี้ถึงเวลาถอดรหัสพวกมันแล้ว ในการท้าทายนี้โปรแกรมของคุณจะได้รับบาร์โค้ดที่สร้างจากMark My Mailความท้าทาย , ถอดรหัสและคืนค่าจำนวนเต็มที่เข้ารหัส แต่ระวัง! บาร์โค้ดอาจคว่ำลง ... บาร์โค้ด 4 สถานะ ในกรณีที่คุณพลาดการท้าทายการเข้ารหัสคุณจะต้องรู้ว่าบาร์โค้ดประเภทใดที่เรากำลังพูดถึง บาร์โค้ด 4 สถานะคือแถวของแท่งที่มีสี่สถานะที่เป็นไปได้แต่ละอันแสดงจำนวนเต็มฐาน 4: | | Bar: | | | | | | Digit: 0 1 2 3 แสดงผลใน ASCII บาร์โค้ดจะใช้ข้อความสามบรรทัดโดยใช้|อักขระpipe ( ) เพื่อแสดงส่วนหนึ่งของบาร์และเว้นวรรค ( ) เพื่อแสดงส่วนที่ว่างเปล่า จะมีช่องว่างเดียวในแต่ละแถบ บาร์โค้ดตัวอย่างอาจมีลักษณะเช่นนี้: | | | | | …

10
แปลงคำตอบ TIO เป็นคำตอบ CMC
มาทำสิ่งที่มีประโยชน์กันเถอะ รับข้อความจากการส่ง codegolf ของ Try It Online สร้างการส่ง Chat Chat Challenge ที่เทียบเท่าซึ่งเป็นรูปแบบ Language, N bytes: [`code`](URL) หรือ (หากการส่งเป็นไบต์เดียว - TIO จะเพิ่มการติดตามในบรรทัดแรกเฉพาะในกรณีที่จำเป็น) Language, 1 byte: [`code`](URL) คุณอาจคิดว่าการส่ง มีเพียงหนึ่งบรรทัด ไม่มี backticks ( `) ไม่มีช่องว่างชั้นนำ มีรูปแบบปกติเช่นในตัวอย่างด้านล่าง บรรทัดโค้ดมีการเว้นวรรคสี่ช่องว่าง ( ) ไม่ใช่แท็ก HTML ( <pre><code>... </code></pre>) คือไม่มีช่องว่างต่อท้าย โปรดทราบว่าการส่งอาจมีแท็กเน้นไวยากรณ์ ดูตัวอย่างล่าสุด …url "Language - Try It Online"คุณอาจเลือกที่จะรวมถึงข้อความชื่อคือ …

2
เขียน tokeniser ของเหตุการณ์
พื้นหลัง เหตุการณ์เป็นภาษาการเขียนโปรแกรมที่ค่อนข้างแปลกในรายการของโทเค็นไม่ได้กำหนดไว้ล่วงหน้า แต่อนุมานจากอินพุต ดังนั้นการโทเค็นโปรแกรมเหตุการณ์อาจค่อนข้างยากโดยเฉพาะอย่างยิ่งถ้าคุณต้องการทำอย่างมีประสิทธิภาพ งานนี้เกี่ยวกับการทำด้วยตัวเอง งาน โปรแกรมของคุณจะได้รับสตริงเป็นอินพุต นี่คืออัลกอริทึมที่เหตุการณ์ใช้เพื่อทำเครื่องหมาย: ระบุสตริงทั้งหมดที่เกิดขึ้นเป็นสตริงย่อยของอินพุตในสามวิธีอย่างแน่นอน (เช่นมีสตริงที่เกิดขึ้นสามครั้งภายในอินพุต) ยกเลิกสตริงใด ๆ ที่เป็นสตริงย่อยของสตริงอื่น (เช่นสำหรับอินพุตabababสตริงที่เหลือเท่านั้นจะabไม่ใช่aหรือbเพราะaและbเป็นสตริงย่อยของทั้งสองab) ยกเลิกสตริงใด ๆ ที่ทับซ้อนกันภายในอินพุต (ยกตัวอย่างเช่นaaaaมีเพียงแค่สามเล่มaaแต่สำเนาเหล่านี้ทับซ้อนกันที่ตัวละครสองและสามนั้นจะถูกยกเลิก. ในทำนองเดียวกันในabababaมีสามสำเนาabและสามสำเนาของbaแต่สองตัวละครที่หกแต่ละที่ ทับซ้อนของabและbaดังนั้นทั้งสองabและbaจะถูกทิ้ง) สตริงใด ๆ ที่ยังคงอยู่ ณ จุดนี้เป็นโทเค็นที่ใช้โดยโปรแกรม โทเค็นอินพุตต้นฉบับเป็นลำดับโทเค็นเหล่านี้ (เนื่องจากการละทิ้งในขั้นตอนก่อนหน้าจะมีเพียงวิธีเดียวเท่านั้นที่ทำได้) อักขระใด ๆ ในอินพุตที่ไม่ได้เป็นส่วนหนึ่งของโทเค็นจะถือว่าเป็นความคิดเห็นและถูกละทิ้ง โปรแกรมของคุณจะต้องใช้สตริงเป็นอินพุตและส่งกลับโทเค็นที่สอดคล้องกันของสตริง (รายการโทเค็นซึ่งแต่ละรายการจะแสดงเป็นสตริง) เป็นเอาต์พุต นอกจากนี้สิ่งนี้จะต้องทำอย่างน้อยในระดับปานกลางอย่างมีประสิทธิภาพ โดยเฉพาะโปรแกรมจะต้องทำงานในเวลากำลังสอง ("O (n²)") หรือดีกว่า (บังเอิญมันเป็นไปได้ที่จะเร็วกว่าสมการกำลังสอง แต่นี่ไม่ใช่อัลกอริธึมที่เร็วที่สุดดังนั้นอย่าลังเลที่จะใช้อัลกอริธึมที่ยากที่สุดที่คุณจะพบว่าเหมาะกับขอบเขตความซับซ้อน) ชี้แจง แม้ว่าในทางทฤษฎีแล้วโปรแกรมสามารถมี 256 octets ใด ๆ ก็ตามมันเป็นที่ยอมรับได้สำหรับวัตถุประสงค์ของการท้าทายนี้สำหรับโปรแกรมของคุณที่จะจัดการเฉพาะอินพุตที่เกิดขึ้นจาก ASCII ที่พิมพ์ได้ (รวมถึงช่องว่าง) …

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