การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

17
Codegolf Rainbow: วาดในขาวดำ
บทนำ: (ที่มา: Wikipedia ) เมื่อเราดูรุ้งมันจะมีสีจากบนลงล่างเสมอ: สีแดง; ส้ม; สีเหลือง; เขียว; สีน้ำเงิน; คราม; ม่วง ถ้าเราดูที่วงแหวนเหล่านี้แต่ละวงแหวนสีแดงย่อมใหญ่กว่าวงแหวนม่วง นอกจากนี้ยังเป็นไปได้ที่จะมีรุ้งสองหรือสามตัวในเวลาเดียวกัน ทั้งหมดนี้รวมกันจะถูกนำมาใช้ในการท้าทายนี้: ท้าทาย: ได้รับจำนวนเต็มnเอาท์พุทที่วงแหวนหลายวงของ 'สายรุ้ง' (อาจมากกว่าหนึ่ง) ที่เราจะใช้ตัวอักษรvibgyorสำหรับสี ดูกรณีทดสอบด้านล่างเพื่อดูว่ามีการสร้างขึ้นจากด้านบนn=1อย่างไรและวิธีจัดการระยะห่าง (ที่n=8) อย่างที่คุณเห็นจะมีการเพิ่มช่องว่างหนึ่งอันระหว่างสองสายรุ้งรวมถึงระยะห่างที่ด้านบนก่อนที่เราจะเพิ่มวงแหวนของรุ้งถัดไป กฏท้าทาย: คุณได้รับอนุญาตให้ใช้เงินทุนVIBGYORแทนตัวพิมพ์เล็ก ควรมีช่องว่างระหว่างรุ้งแต่ละตัว จำนวนช่องว่างนำหน้าและ / หรือช่องว่าง / บรรทัดใหม่ใด ๆ ที่อนุญาตตราบใดที่สายรุ้งที่เกิดขึ้นจริง (ไม่ว่าจะอยู่ที่ใดก็ตามบนหน้าจอ) จะถูกต้อง อินพุตจะเป็นจำนวนเต็มบวกเสมอ ( >= 1) พฤติกรรมเมื่อn=0ไม่ได้กำหนดดังนั้นและโปรแกรม / ฟังก์ชั่นสามารถทำสิ่งที่มันต้องการ ( n=1เอาท์พุทอะไร; เอาท์พุทรุ้งของ; เอาท์พุทแบบสุ่ม; ล้มเหลวด้วยข้อผิดพลาด ฯลฯ ) คุณได้รับอนุญาตให้ส่งออกรายการ …

14
กฎของไนสมิ ธ
กฎของไนสมิ ธช่วยในการกำหนดระยะเวลาที่จำเป็นสำหรับการเดินหรือปีนเขาตามระยะทางและทางขึ้น ให้รายการความสูงที่ไม่เว้นว่าง ณ จุดที่เว้นระยะเท่ากันตามเส้นทางและระยะทางรวมของเส้นทางนั้นเป็นเมตรคุณควรคำนวณเวลาที่จำเป็นตามกฎของไนสมิ ธ กฎของไนสมิ ธ คือคุณควรอนุญาตหนึ่งชั่วโมงสำหรับทุก ๆ ห้ากิโลเมตรบวกอีกชั่วโมงสำหรับทุก ๆ 600 เมตรของปีน ข้อมูลนำเข้าต้องใช้หน่วยเป็นเมตรซึ่งรับประกันว่าจะประกอบด้วยจำนวนเต็มไม่เป็นลบและเอาต์พุตควรเป็นชั่วโมงหรือนาทีอย่างสม่ำเสมอ (แต่ไม่ใช่ทั้งคู่) และต้องสามารถให้ตัวเลขทศนิยมที่สามารถใช้งานได้ . ตัวอย่างเช่นกำหนด: [100, 200, 400, 200, 700, 400], 5000 สำหรับสององค์ประกอบแรก[100, 200]คุณมีการขึ้น 100 เมตรซึ่งก็คือ 10 นาที เมื่อ[200, 400]คุณมีการปีนขึ้นไป 200 เมตรซึ่งเป็นเวลา 20 นาที[400, 200]จะไม่ขึ้นไปดังนั้นจึงไม่มีเวลาเพิ่ม [200, 700]คือ 500 เมตรของทางขึ้นซึ่งคือ 50 นาทีและในที่สุดก็[700, 400]ไม่ได้ขึ้น เพิ่มหนึ่งชั่วโมงพิเศษสำหรับระยะทางห้ากิโลเมตร รวมเป็น140นาทีหรือ2.333 ...ชั่วโมง กรณีทดสอบ …
12 code-golf  number 

7
รับ N องค์ประกอบที่ n ขององค์ประกอบ ['A', 'B', 'AB', 'C', 'D', 'CD', 'ABCD', 'E', …]?
พิจารณารายการต่อไปนี้: expected = [ 'A', 'B', 'AB', 'C', 'D', 'CD', 'ABCD', 'E', 'F', 'EF', 'G', 'H', 'GH', 'EFGH', 'ABCDEFGH', 'I', 'J', 'IJ', 'K', 'L', 'KL', 'IJKL', 'M', 'N', 'MN', 'O', 'P', 'OP', 'MNOP', 'IJKLMNOP', 'ABCDEFGHIJKLMNOP', ... ] นี่คือวิธีหนึ่งในการดู - คุณกำลังเรียนรู้วิธีการเขียนตัวอักษรจีนและต้องการเรียนรู้ชิ้นใหญ่ ๆ ของพวกเขามากขึ้นฝึกซ้อมเมื่อคุณไป คุณเริ่มต้นด้วย A จากนั้นไปด้วย B จากนั้นมีลำดับที่เป็นคู่ที่สองแล้วคุณรวมมัน จากนั้นคุณไปกับ C และ …

10
อีโมติคอนกอล์ฟ
บทนำ ความท้าทายของคุณในวันนี้ (ได้รับแรงบันดาลใจจากความท้าทายนี้ ) คือการเขียนตัวอย่างฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบซึ่งแต่ละตัวจะแสดงอิโมติคอน ASCII ที่หลากหลายโดยไม่ต้องใช้อักขระซ้ำ ท้าทาย รายการอิโมติคอน ASCII ที่ถูกต้องสำหรับความท้าทายนี้มีทั้งที่นี่และในบล็อกรหัสที่ด้านล่างของโพสต์นี้ ข้อมูลโค้ดแต่ละอันควรอยู่ในบรรทัดแยกต่างหากในการส่งของคุณ คุณสามารถใช้ภาษาเดียวเท่านั้นสำหรับตัวอย่างทั้งหมด ข้อมูลแต่ละชุดจะต้องส่งออกทั้งที่ stdout หรือกลับสตริงที่มีไอคอนแสดงอารมณ์และตัวเลือกท้ายบรรทัดใหม่และไม่มีอะไรอื่น คุณไม่สามารถใช้อักขระใด ๆ มากกว่าหนึ่งครั้งในตัวอย่างทั้งหมดอย่างไรก็ตามการใช้อักขระหลาย ๆ ครั้งในตัวอย่างเดียวก็ใช้ได้ คุณไม่สามารถใช้อักขระใด ๆ ที่ไม่ได้อยู่ในเพจรหัสของภาษาของคุณ (หรือ ascii หากภาษาของคุณไม่ได้ใช้เพจรหัสที่กำหนดเอง) ในตัวอย่างใด ๆ อีกวิธีหนึ่งคุณถูก จำกัด ไว้เฉพาะอักขระที่สามารถเข้ารหัสในหนึ่งไบต์ ไม่มีส่วนย่อยใด ๆ สามารถป้อนข้อมูลใด ๆ ได้ ช่องโหว่มาตรฐานไม่ได้รับอนุญาต คะแนนของคุณคือจำนวนตัวอย่างที่ไม่ซ้ำกันซึ่งแต่ละคนจะพิมพ์อิโมติคอน ASCII ที่แตกต่างกันในไฟล์ข้อความด้านบน คะแนนสูงสุดชนะ! โชคดี! อิโมติคอนที่อนุญาตแยกช่องว่าง: :-) :) :-] :] :-3 :3 …

11
ค้นหาการจับคู่ต้นทุนขั้นต่ำระหว่างอาร์เรย์ของจำนวนเต็ม
พิจารณาสองเรียงอาร์เรย์ของจำนวนเต็มและYขนาดเมตรและnตามลำดับเมตร&lt; n ยกตัวอย่างเช่นX = ( 1 , 4 ) , Y = ( 2 , 10 , 11 )XXXYYYม.mmnnnm &lt; nm&lt;nm < nX= ( 1 , 4 )X=(1,4) X = (1,4)Y= ( 2 , 10 , 11 )Y=(2,10,11)Y = (2,10,11) เราบอกว่าการจับคู่เป็นวิธีการจับคู่องค์ประกอบของแต่ละบางกับองค์ประกอบของYในลักษณะที่ไม่มีสององค์ประกอบของXจะจับคู่กับองค์ประกอบเดียวกันของ Y ค่าใช้จ่ายของการจับคู่เป็นเพียงผลรวมของค่าสัมบูรณ์ของความแตกต่างในคู่XXXYYYXXXYYY ตัวอย่างเช่นกับ , Y = ( 2 , …

3
เพิ่มประสิทธิภาพ Nullifiers ของฉัน
ฉันเป็นแฟนตัวยงของเกม Creeper World และเป็นภาคต่อโดยเฉพาะ คุณไม่จำเป็นต้องรู้ว่าเกมนี้ทำงานอย่างไรเพื่อตอบคำถามฉันแค่อยากพูดถึงที่มาของคำถามของฉัน ในเกมเป้าหมายของคุณคือทำลาย Emitters ที่กำลังวางไข่ Creeper โดยใช้อาวุธที่เรียกว่า nullifier Nullifiers สามารถทำลายอิมิตเตอร์ใด ๆ ในรัศมีนี้: eee eeeee eenee eeeee eee แต่ละ nullifier สามารถกำหนดเป้าหมายหลาย Emitters วัตถุประสงค์ของคุณ รับอาร์เรย์จำลองแผนที่ 2D ประกอบด้วยอะไรและemittersกับตัวละครสิ่งที่คุณต้องการอาจจะเป็นช่องว่างและอีเมลหรือหมายเลข - เพียงให้แน่ใจว่าพวกเขามีความแตกต่างออกแผนที่เดียวกันมีจำนวนที่เหมาะสมของ nullifiers n (หรือสิ่งที่คุณต้องการ ) ถูกวางไว้เพื่อให้ตัวปล่อยถูกทำลายด้วยจำนวนโมฆะน้อยที่สุด หากมีวิธีที่เหมาะสมที่สุดในการทำเช่นนั้นเพียงแค่แสดงผลออกมาจะดี อย่างไรก็ตามถ้างานนั้นไม่สามารถแก้ไขได้บอกว่ามีตัวส่งสัญญาณจำนวนมากที่ไม่มีเลย์เอาต์ที่จะตีพวกเขาทั้งหมดคุณจะต้องแสดงสิ่งที่แตกต่างออกไปอย่างชัดเจน null จะพอเพียง กฎด่วน: อินพุต: อาร์เรย์หลายมิติ ข้อมูลที่ป้อนจะมีอักขระสองตัวซึ่งไม่มีความหมายและตัวปล่อยรวมอยู่ในคำตอบของคุณ เอาท์พุท: อาร์เรย์หลายมิติ การส่งออกจะมีตัวละครทั้งสามมีความหมายอะไร , อีซีแอลและNullifierหรือผลผลิตแตกต่างถ้าใส่เป็นปัญหาโลกแตก คุณสามารถแทนที่ตัวละครที่ไม่มีอะไรด้วย nullifier …

30
ตัวเลขสุดท้ายจำนวนมาก
สำหรับรายการตัวเลขที่ระบุค้นหาตัวเลขสุดท้ายของ ตัวอย่าง:[ x1, x2, x3, . . . , xn][x1,x2,x3,...,xn][x_1, x_2, x_3, ..., x_n]xxx...xn321x1x2x3…xnx_1 ^{x_2 ^ {x_3 ^ {\dots ^ {x_n}}}} [3, 4, 2] == 1 [4, 3, 2] == 4 [4, 3, 1] == 4 [5, 3, 2] == 5 เพราะ430467213( 4)2)= 316= 430467213(42)=316=430467213 ^ {(4 ^ 2)} = …
12 code-golf  math 

23
แปลงตัวเลขเป็นตัวอักษรและในทางกลับกันเป็นสตริง
ขึ้นอยู่กับรายการของตัวเลขและตัวอักษรที่เทียบเท่ากันใช้อินพุตสตริงแทนที่อักขระของสตริงนั้นด้วยตัวเลข / ตัวอักษรและผลลัพธ์ผลลัพธ์ที่เทียบเท่ากัน รายการ 1 = a 2 = b 3 = c 4 = d 5 = e 6 = f 7 = g 8 = ชม 9 = ฉัน 0 = j อินพุต thisisastring1124 เอาท์พุต t89s9s1str9n7aabd กฎระเบียบ ตัวเลขเทียบเท่ากับตัวอักษรตัวพิมพ์เล็กเท่านั้น ตัวละครใด ๆ นอกรายการจะถูกทิ้งไว้ตามที่เป็น สตริงอินพุตต้องไม่มีช่องว่าง อนุญาตให้ใช้โปรแกรมหรือฟังก์ชั่นเต็มรูปแบบได้ เนื่องจากเป็น code-golf ไบต์ที่น้อยที่สุดจึงชนะ
12 code-golf  string 

14
Hardcoding the Cops and Robbers (โจร)
นี่เป็นความท้าทายของตำรวจและโจร กระทู้ Cops 'เพื่อความท้าทายนี้อยู่ที่นี่ คำถามที่น่าสนใจที่ต้องคิดคือต่อไปนี้: หากฉันมีลำดับตัวเลขฉันต้องระบุจำนวนเท่าใดก่อนที่จะชัดเจนว่าฉันกำลังพูดถึงลำดับใด ตัวอย่างเช่นถ้าฉันต้องการพูดคุยเกี่ยวกับจำนวนเต็มบวกตามลำดับที่เริ่มต้นจากฉันสามารถพูดได้แต่นั่นก็เพียงพอ1111,2,3,…1,2,3,…1,2,3, \dots ฉันมีวิธีหนึ่งในการตอบคำถามนี้และการเป็นนักกอล์ฟโค้ดมันเกี่ยวข้องกับการเขียนโค้ดกอล์ฟ คุณได้ให้เงื่อนไขของลำดับที่เพียงพอหากรหัสที่สั้นที่สุดที่สร้างคำเหล่านั้นสร้างเงื่อนไขทั้งหมดของลำดับ ถ้าเราคิดถึงเรื่องนี้ในแง่ของ code-golf นี่ก็หมายความว่าคุณได้เตรียมเคสทดสอบไว้เพียงพอแล้วเช่นว่ารหัสสั้นที่สุดที่ผ่านการทดสอบจะเป็นงานที่ต้องการ ท้าทาย ความท้าทายนี้เป็นตำรวจและโจรท้าทาย ในกรณีที่ตำรวจจะนำเสนอกรณีทดสอบและโจรจะต้องหาวิธีที่สั้นกว่าเพื่อหลอกกรณีทดสอบอื่น ๆ นอกเหนือจากลำดับที่ตั้งใจไว้ ตำรวจจะนำเสนอสิ่งต่อไปนี้: ชิ้นส่วนของรหัสที่ใช้จำนวนเต็มบวกเป็นอินพุตและสร้างจำนวนเต็มเป็นผลลัพธ์ รหัสนี้สามารถเป็นศูนย์หรือดัชนีหนึ่ง แต่ควรมีความชัดเจนว่าการจัดทำดัชนีคืออะไร รหัสนี้จะกำหนดลำดับของคุณ ข้อกำหนดแพลตฟอร์มหรือภาษาที่เกี่ยวข้องใด ๆ ที่อาจมีผลต่อเอาต์พุตตัวอย่างเช่นขนาดของ longint จำนวนพร้อมกับครั้งแรกแง่ของการลำดับตามที่คำนวณได้จากรหัส สิ่งเหล่านี้จะทำหน้าที่เป็น "กรณีทดสอบ"nnnnnnn โจรจะค้นหาโปรแกรมในภาษาเดียวกันที่สั้นกว่าที่นำเสนอและผ่านกรณีทดสอบทั้งหมด (สร้างเอาต์พุตเดียวกันสำหรับอินพุตแรกเป็นรหัสของตำรวจ) รหัสโม่งก็ต้องแตกต่างกันในการส่งออกจากโปรแกรมของตำรวจสำหรับจำนวนบางส่วนมีขนาดใหญ่กว่าnnnnnnnn เกณฑ์การให้คะแนน โจรจะได้คะแนนในจำนวนรอยแตกที่พวกเขาพบว่ามีรอยแตกมากขึ้นจะดีขึ้น คำตอบสามารถแตกอีกครั้งโดยการค้นหาคำตอบที่ถูกต้องสั้นกว่ารอยแตกเดิม หากคำตอบคือรอยร้าวเป็นครั้งที่สองจะให้คะแนนแก่แครกเกอร์ที่สองมากกว่าคำตอบ

12
วาดแผนภาพการกระจาย!
ท้าทาย คุณได้รับจำนวนเต็มสามจำนวนเป็นอินพุต - min_value, max_value, sample_sizeซึ่งคุณสามารถส่งคำตอบเป็นอาร์เรย์หรือพารามิเตอร์หลายตัว งานของคุณคือการส่งออกแผนภาพในรูปแบบที่สะดวกใด ๆที่แสดงความถี่ของตัวเลขใน(min_value, max_value)ช่วงที่ปรากฏขึ้นเมื่อมีการสุ่มเลือกตัวเลขใน(min_value, max_value)ช่วงsample_sizeเวลา ควรสร้างลำดับหมายเลขสุ่มภายในคำตอบของคุณ ด้วยช่วงขนาดใหญ่และขนาดตัวอย่างคุณสามารถเปลี่ยนขั้นตอนที่ไดอะแกรมของคุณใช้ได้ตราบใดที่การแสดงยังคงถูกต้อง ตัวอย่าง ด้วย[1, 5, 10]เป็นอินพุต: o o o x o x o x x x x x x x x 1 2 3 4 5 ด้วย[1, 100, 15]อินพุต (ในขั้นตอน 10 ดังนั้น 00 แสดง 1-9, 10 แสดง 10-19 เป็นต้น): xx …
12 code-golf  random 

8
จัดทำดัชนีภาพนิ่ง Cha-Cha
บทนำ: แม้ว่าในขั้นต้นฉันจะมีเพลงดัตช์อยู่ในหัวของฉันซึ่งเนื้อเพลงคือ: " Doe 'n stapje naar voren, en' n stapje terug " (ซึ่งแปลว่า " ก้าวไปข้างหน้านิดหน่อยและถอยกลับเล็กน้อย ") เมื่อ ฉันค้นหาเนื้อเพลงเต็มฉันรู้ว่าพวกเขากลับไปมาและไม่เคยออกไปด้านข้าง ดังนั้นตอนนี้ฉันจึงใช้เนื้อเพลงของMr C The Slide Man หรือ DJ Casper - Cha-Cha Slideสำหรับความท้าทายนี้ หากเราเพิกเฉยต่อสิ่งอื่นและดูเฉพาะคำว่า "ซ้าย", "ขวา", "ย้อนกลับ" และ "กระโดด" (ฉันนับว่า "กระโดด" เป็นไปข้างหน้า) รวมถึงจำนวนที่กล่าวถึงเพลงเต็มจะมีรายการดังต่อไปนี้ ( ฉันใช้ตัวย่อ LRBH ที่นี่): LBHRLLBHRLBHHRRLLLRLBHHHHRRLLLBHHHHHRLRLRLHRLLBHHLRLBHH นี่คือเนื้อเพลงเต็มเพลงใน code-snippet JavaScript ที่ซ่อนได้ (เพื่อประหยัดพื้นที่) …

11
ค้นหาหมายเลขด้วยผลรวมสูงสุดของเพื่อนบ้าน
ความท้าทาย รับกริดของตัวเลข (10 &lt;= N &lt;= 99) Return number พร้อมผลรวมสูงสุดของตัวเลขสี่ตัวที่อยู่ติดกัน นั่นคือตัวเลขด้านบนด้านล่างด้านขวาและด้านซ้ายของตัวเลข แต่ไม่ใช่ตัวเอง จำนวนของตัวมันเองนั้นไม่ได้นับรวมเฉพาะสี่ประเทศเท่านั้น หมายเลขบนขอบควรได้รับการปฏิบัติเสมือนว่าหมายเลขที่หายไปคือ 0 ฉันจะออกแบบการทดสอบเพื่อหลีกเลี่ยงความสัมพันธ์ ตัวเลขจะไม่ซ้ำ นี่คือรหัสกอล์ฟ ตัวอย่าง ป.ร. ให้ไว้ 56 98 32 96 12 64 45 31 94 18 83 71 กลับ 18 การทดสอบจริง ป.ร. ให้ไว้ 98 95 67 66 57 16 40 94 84 37 87 14 …

1
วิธีที่สั้นที่สุดในการกำหนดฟังก์ชั่นวนซ้ำแบบไม่ระบุชื่อใน Octave คืออะไร
ฉันชอบการเขียนโปรแกรมที่ใช้งานได้ใน Octave แต่ในทางปฏิบัติมันค่อนข้างไม่สะดวก ฉันสงสัยเกี่ยวกับวิธีที่สั้นที่สุดในการกำหนดฟังก์ชั่นวนซ้ำแบบไม่ระบุชื่อ ฉันมีความคิดบางอย่าง แต่ฉันสงสัยว่าถ้ามีวิธีที่จะรวมความคิดเหล่านี้เพื่อทำให้สั้นลง เพื่อประโยชน์ของคำถามนี้ให้นับซ้ำเป็นศูนย์ซ้ำ (เพื่อให้ส่วนของข้อมูลง่ายที่สุดเท่าที่จะทำได้) หากเหตุผลของฉันถูกต้องไม่มีชื่อตัวแปรที่ฉันใช้ในตัวอย่างต่อไปนี้ควรทับซ้อนกัน ฟังก์ชั่นที่ต้องการคือq(n)ซึ่งควรกลับเป็นศูนย์เสมอ iถูกนำมาใช้เป็นตัวแปรเคาน์เตอร์fเป็นฟังก์ชันเวียนซึ่งเราเรียกในขอบเขตของท้องถิ่นgf 44 ไบต์ "คำจำกัดความแบบอินไลน์ของf" q=@(n)(f=@(g,i){@()g(g,i-1),i}{~i+1}())(f,n) 44 ไบต์ "คำนิยามรายการอาร์กิวเมนต์ของf" q=@(n,f=@(g,i){@()g(g,i-1),i}{~i+1}())f(f,n) 44 ไบต์ "คำจำกัดความที่แยกต่างหากของf" f=@(i,g){@()g(i-1,g),i}{~i+1}();q=@(n)f(n,f) 41 ไบต์ "ฟังก์ชันที่ต้องการเป็นค่าส่งคืน" f=@(g)@(n){@()g(g)(n-1),n}{~n+1}();q=f(f) ว่า 'ชนะ' ปัจจุบันมีแรงบันดาลใจจากคำตอบนี้โดย flawr อย่างไรก็ตามด้วยวิธีการที่หลากหลายในการทำสิ่งนี้บางทีใครบางคนอาจคิดถึงวิธีการที่สั้นลง แน่นอนว่าเป้าหมายของมันคือให้ต่ำกว่า 39 ไบต์สำหรับฟังก์ชั่น "เต็ม" ลองออนไลน์!
12 code-golf  tips  octave 

1
pangrams ที่ระบุตนเอง
Pangrams สุนัขจิ้งจอกสีน้ำตาลได้อย่างรวดเร็วเพิ่มขึ้นกว่าสุนัขขี้เกียจ. นี่คือตัวอย่างของ pangram - ประโยคที่มีตัวอักษรทุกตัวอักษรอย่างน้อยหนึ่งครั้ง ตนเองแจงแกรมเป็นประโยคที่ตอบสนองเกณฑ์ที่จะเป็นแกรมโดยการผลิตการวิเคราะห์ของการนับตัวอักษรของตัวเอง ตัวอย่างของการบรรลุเป้าหมายนี้คือประโยค pangram นี้มีสี่ As, หนึ่ง B, สอง Cs, หนึ่ง D, สามสิบ Es, หก Fs, ห้า Gs, เจ็ด Hs, สิบเอ็ดคือหนึ่ง J, หนึ่ง K, หนึ่ง K, สอง Ls, สอง Ms, สิบแปด Os, สอง Ps หนึ่ง Q ห้าอาร์เอสเอสยี่สิบเจ็ดแปดสิบสองเราสองคนเจ็ด Vs แปดแปดวินาทีสอง Xs สามปีและหนึ่ง Z ความท้าทาย ผลิตฟังก์ชั่นที่มีการป้อนข้อมูลเป็นสตริงที่นำไปสู่สินค้าคงคลังจดหมาย ในตัวอย่างอินพุตจะเป็น …

9
นับจำนวนฟิลด์ในแต่ละระเบียน csv
ลองนึกภาพไฟล์ข้อความที่แต่ละระเบียน csv อาจมีจำนวนฟิลด์ต่างกัน ภารกิจคือการเขียนโค้ดเพื่อแสดงจำนวนฟิลด์ที่มีในแต่ละเรคคอร์ดของไฟล์ คุณสามารถสมมติว่าไม่มีบรรทัดส่วนหัวในไฟล์และสามารถอ่านได้จากไฟล์หรืออินพุตมาตรฐานตามที่คุณเลือก คุณสามารถสมมติรุ่นของrfc4180สำหรับกฎ csv ซึ่งฉันจะอธิบายด้านล่างสำหรับคำจำกัดความของแต่ละบรรทัดของไฟล์ นี่เป็นเวอร์ชั่นที่แก้ไขเล็กน้อยของส่วนที่เกี่ยวข้องของข้อมูลจำเพาะ: คำจำกัดความของรูปแบบ CSV แต่ละระเบียนจะอยู่ในบรรทัดที่แยกต่างหากคั่นด้วยตัวแบ่งบรรทัด (CRLF) ตัวอย่างเช่น: aaa,bbb,ccc CRLF zzz,yyy,xxx CRLF ระเบียนสุดท้ายในไฟล์อาจมีหรือไม่มีตัวแบ่งบรรทัดสิ้นสุด ตัวอย่างเช่น: aaa,bbb,ccc CRLF zzz,yyy,xxx (กฎข้อ 3. ใช้ไม่ได้กับการท้าทายนี้) ภายในแต่ละระเบียนอาจมีหนึ่งหรือมากกว่าหนึ่งช่องคั่นด้วยเครื่องหมายจุลภาค ช่องว่างถือเป็นส่วนหนึ่งของเขตข้อมูลและไม่ควรละเว้น แต่ละฟิลด์อาจมีหรือไม่มีก็ได้ในเครื่องหมายคำพูดคู่ หากเขตข้อมูลไม่ได้อยู่ในเครื่องหมายคำพูดคู่การอ้างอิงสองครั้งอาจไม่ปรากฏในเขตข้อมูล ตัวอย่างเช่น: "aaa","bbb","ccc" CRLF zzz,yyy,xxx ฟิลด์ที่มีตัวแบ่งบรรทัด (CRLF) เครื่องหมายคำพูดคู่และเครื่องหมายจุลภาคควรอยู่ในเครื่องหมายคำพูดคู่ ตัวอย่างเช่น: "aaa","b CRLF bb","ccc" CRLF zzz,yyy,xxx หากมีการใช้เครื่องหมายอัญประกาศคู่เพื่อใส่เขตข้อมูลดังนั้นเครื่องหมายอัญประกาศคู่ที่ปรากฏภายในเขตข้อมูลจะต้องถูกหลีกเลี่ยงโดยนำหน้าด้วยเครื่องหมายคำพูดคู่อื่น ตัวอย่างเช่น: "aaa","b""bb","ccc" ตัวอย่าง การป้อนข้อมูล: ,"Hello, World!" …
12 code-golf 

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