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

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

17
กรอกข้อมูลใน Minesweeper clues
Minesweeperเป็นเกมตัวต่อยอดนิยมที่คุณต้องค้นหาว่าแผ่นไหนเป็น "เหมือง" โดยไม่ต้องคลิกบนแผ่นเหล่านั้น แต่ละแผ่นเป็นทั้งเหมือง (แสดงโดย*) หรือเบาะแสเช่นหมายเลขตั้งแต่ 0 ถึง 8 แสดงถึงจำนวนของกระเบื้อง 8 แผ่นที่อยู่ใกล้เคียงคือเหมือง งานของคุณในวันนี้คือนำกระดานที่มีเหมืองและกรอกข้อมูลทั้งหมด ตัวอย่างเช่นดูกระดานต่อไปนี้ 5x4 โดยมี 5 เหมือง: * * * * * หลังจากเติมเบาะแสบอร์ดจะมีลักษณะเช่นนี้: 2*211 *33*1 12*32 0112* รายละเอียด คุณต้องเขียนโปรแกรมเต็มหรือฟังก์ชั่นที่ใช้ในตารางของตัวละครที่มีเพียงช่องว่างและเครื่องหมายดอกจันและส่งออกตารางอื่นที่แต่ละช่องว่างจะถูกแทนที่ด้วยจำนวนของเหมืองที่อยู่ติดกัน (เครื่องหมายดอกจัน) สิ่งเหล่านี้เป็นรูปแบบที่ยอมรับได้สำหรับกริดของคุณ: สตริงที่มีการขึ้นบรรทัดใหม่ รายการ 2D ของตัวละคร / สายอักขระเดียว รายการของสตริง คุณสามารถสมมติว่ากริดจะต้องมีอย่างน้อย 1x1 ถึงแม้ว่ามันจะเป็นไปได้ที่จะเป็นเหมืองทั้งหมดหรือช่องว่างทั้งหมด กริดอินพุตจะถูกเสริมด้วยจำนวนช่องว่างที่เหมาะสมเสมอ ตามปกตินี่คือcode-golfดังนั้นช่องโหว่มาตรฐานจึงนำมาใช้และคำตอบที่สั้นที่สุดในการชนะไบต์! ตัวอย่าง IO เพื่อให้คุณเห็นช่องว่างฉันจะแสดงตัวอย่าง IO ทั้งหมดด้วยวงเล็บรอบ ๆ …

22
ตัวเลขเดนนิส 2.0
ผู้ใช้ PPCG และ mod ที่ได้รับการเลือกตั้ง@Dennisกลายเป็นผู้ใช้รายที่สองที่มีรายได้มากกว่า 100k! นี่เป็นความคิดดั้งเดิมโดยสิ้นเชิงที่ฉันไม่ได้รับจากใครเลยแต่ลองทำตามความท้าทายจากรหัสผู้ใช้ของเขา12012เพื่อเป็นบรรณาการ! เมื่อมองดูคุณจะสังเกตเห็นว่ามี "ส่วน" ที่แตกต่างกันสองรายการสำหรับ ID ของเขา 12 และ 012 ทั้งสองส่วนนี้รวมกันเป็น 3 ซึ่งเป็นคุณสมบัติที่น่าสนใจทีเดียว ลองกำหนด "เดนนิสเบอร์ 2.0" เป็นจำนวนเต็มบวกใด ๆ ที่ทุก ๆ การเรียงลำดับสูงสุดของตัวเลขที่เพิ่มขึ้นอย่างเคร่งครัดเป็นจำนวนเดียวกัน ตัวอย่างเช่น, 123 เป็นตัวเลขเดนนิส 2.0 เพราะมีเพียงหนึ่งในรายการย่อยสูงสุดของตัวเลขที่เพิ่มขึ้นอย่างเคร่งครัดและจะรวมเป็น 6 นอกจากนี้ 2,846,145 ยังเป็นหมายเลขเดนนิส 2.0 เพราะทั้งสามรายการย่อยสูงสุดของตัวเลขเพิ่มขึ้น ได้แก่ 28 46 145 10ผลรวมทั้งหมดเพื่อ นอกจากนี้ตัวเลขที่เพิ่งทำซ้ำตัวเลขเดียวกันจะต้องเป็นตัวเลขเดนนิส 2.0 เพราะ777สามารถแยกย่อยได้ 7 7 7 ซึ่งรวมทั้งหมดเจ็ดอย่างชัดเจน จำนวนเช่น42เป็นไม่ได้จำนวน …

30
แปลง YYYYMM เป็น MMMYY
อ้างอิงจากคำถาม SOนี้ ท้าทายค่อนข้างง่าย: กำหนดระยะเวลาวันที่ในรูปแบบการส่งออกในรูปแบบYYYYMMMMMYY กฎ: ข้อมูลที่ป้อนจะเป็นตัวเลขหรือสตริงที่มีความยาว 6 ตัวอักษรซึ่งประกอบด้วยตัวเลขเท่านั้น ล่าสุดตัวเลขสองหลักจะอยู่ระหว่างและ0112 เอาท์พุทจะต้องอยู่ในรูปแบบMMMYYที่MMMแสดงรหัสสามตัวอักษรตัวพิมพ์ใหญ่สำหรับเดือน (ด้านล่าง) และYYหมายถึงตัวเลขสองหลักสุดท้ายของYYYYส่วนของการป้อนข้อมูล รายการของเดือนที่มีรหัสที่สอดคล้องกัน: MM MMM 01 JAN 02 FEB 03 MAR 04 APR 05 MAY 06 JUN 07 JUL 08 AUG 09 SEP 10 OCT 11 NOV 12 DEC ตัวอย่าง: Input Output 201604 APR16 200001 JAN00 000112 DEC01 123405 MAY34
54 code-golf  string  date 

10
ประเทศโดยรอบ
ประเทศต่าง ๆ เป็นเจ้าของอาณาเขตบนโลก 1D แต่ละประเทศมีการระบุหมายเลขที่ไม่ซ้ำกัน ความเป็นเจ้าของอาณาเขตสามารถแสดงโดยรายการดังนี้: 1 1 2 2 1 3 3 2 4 เรากำหนดเขตแดนทางประเทศที่เป็นดินแดนสองแห่งที่อยู่ใกล้กับขอบทั้งสอง หากรายการดังกล่าวข้างต้นได้รับการศูนย์การจัดทำดัชนีประเทศ1ของดินแดน edgemost เกิดขึ้นที่ตำแหน่งและ04 ประเทศล้อมรอบอีกรายการหนึ่งหากรายการย่อยระหว่างสองภูมิภาค edgemost มีอาณาเขตทั้งหมดของประเทศอื่น ในตัวอย่างข้างต้นรายการย่อยระหว่าง2ดินแดน edgemost ของประเทศคือ: 2 2 1 3 3 2 และเราจะเห็นว่าทุกภูมิภาคของประเทศ3อยู่ระหว่างดินแดน edgemost ของประเทศ2เพื่อให้ประเทศล้อมรอบประเทศ23 ประเทศที่มีองค์ประกอบเดียวเท่านั้นจะไม่มีทางล้อมรอบอีก ท้าทาย รับรายการของจำนวนเต็มเป็น input (ในรูปแบบใด ๆ ) และการส่งออกที่truthyค่าถ้าประเทศใดถูกล้อมรอบด้วยอีกและfalsyคุ้มค่าเป็นอย่างอื่น คุณสามารถสันนิษฐานได้ว่ารายการอินพุตนั้นไม่ว่างเปล่ามีเฉพาะจำนวนเต็มบวกเท่านั้นและไม่ 'ข้าม' ตัวเลขใด ๆ ตัวอย่างเช่น1 2 1 5จะเป็นอินพุตที่ไม่ถูกต้อง …

8
นี่เป็นคำเดียวหรือเปล่า?
คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้สายอักขระ 4 ตัวเป็นอินพุตและเอาต์พุตที่ระบุว่าสตริงเป็นคำภาษาอังกฤษหรือไม่ คุณได้รับอนุญาตให้ทำผิดพลาดใน 15% ของการทดสอบที่ให้ไว้ รายละเอียดการป้อนข้อมูล: อินพุตเป็นสตริง 4 อักขระที่ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก (az) เท่านั้น รายละเอียดผลลัพธ์: ถ้าใส่เป็นคำภาษาอังกฤษที่คุณควรเอาท์พุทบูลหรือจำนวนเต็มtrue1 ถ้าใส่ไม่ได้เป็นคำภาษาอังกฤษที่คุณควรเอาท์พุทบูลหรือจำนวนเต็มfalse0 รายการคำ รายการคำภาษาอังกฤษ 4 ตัว (2236 คำ) รายการสตริงที่ไม่ใช่คำ 4 ตัวอักษร (2236 สตริง) รายการที่ไม่ใช่คำมีลำดับตัวอักษรที่สร้างขึ้นแบบสุ่มพร้อมกับลบคำที่แท้จริงออกจากพวกเขา การทดสอบ โปรแกรมหรือฟังก์ชั่นของคุณไม่ควรทำผิดพลาดเกินกว่า 15% ของรายการคำที่กำหนดพร้อมกัน นั่นหมายความว่าคุณสามารถให้สัญญาณที่ผิดสำหรับ 670 ​​จาก 4472 ที่มีให้ คุณควรโพสต์โปรแกรมทดสอบหรือฟังก์ชั่นเพื่อให้ผู้อื่นสามารถตรวจสอบคำตอบของคุณ ความยาวของโปรแกรมทดสอบของคุณไม่นับรวมอยู่ในคะแนนที่คุณส่ง ช่องโหว่มาตรฐานไม่ได้รับอนุญาต โปรแกรมของคุณไม่ควรใช้แหล่งข้อมูลภายนอกใด ๆ เช่นการเข้าถึงเว็บหรืออ่านจากไฟล์ นี่คือรหัสกอล์ฟเพื่อให้โปรแกรมหรือฟังก์ชั่นที่สั้นที่สุดชนะ

30
พิมพ์ลำดับ N-bonacci
สิ่งนี้ไม่เป็นที่รู้จักอย่างกว้างขวาง แต่สิ่งที่เราเรียกว่าลำดับฟีโบนักชี AKA 1, 1, 2, 3, 5, 8, 13, 21, 34... จริง ๆ แล้วเรียกว่าลำดับDuonacci เนื่องจากการรับหมายเลขถัดไปคุณจะรวมหมายเลข 2 ก่อนหน้า นอกจากนี้ยังมีลำดับTribonacci 1, 1, 1, 3, 5, 9, 17, 31, 57, 105, 193, 355, 653, 1201... เพราะหมายเลขถัดไปคือผลรวมของ 3 หมายเลขก่อนหน้า และลำดับQuadronacci 1, 1, 1, 1, 4, 7, 13, 25, 49, 94, 181, 349, 673... …

27
สร้าง Wordenticons
Identiconsเป็นภาพที่แสดงให้เห็นถึงค่าแฮชซึ่งมักทำจากการจัดสมมาตรของรูปทรงเรขาคณิต สแต็กการแลกเปลี่ยนสแต็กเริ่มต้นของคุณคือตัวระบุ ความท้าทายนี้เกี่ยวกับการสร้าง"wordenticons"ซึ่งเป็นตัวอักษรเวอร์ชันพื้นฐานที่ใช้ข้อความง่าย ๆ ที่ใช้กับสตริงของตัวอักษรตัวพิมพ์เล็กเช่นคำต่างๆ ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่รับสตริง S และส่งออก wordenticon S รับประกันว่าจะไม่มีข้อยกเว้นและมีตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น az คุณอาจเลือกที่จะสมมติว่า S มีการขึ้นบรรทัดใหม่ wordenticon ของ S จะเป็นตารางสี่เหลี่ยมของข้อความที่มีความยาวด้านข้าง2*length(S)ประกอบด้วยช่องว่าง ( ) แถบแนวตั้ง ( |) และแถบแนวนอน ( ―) ในการสร้าง wordenticon ของ S ให้สร้างตารางสี่เหลี่ยมที่ทุกคอลัมน์สอดคล้องกับตัวอักษร S (ตามลำดับการอ่านจากซ้ายไปขวาตามปกติ) และทุกแถวสอดคล้องกับตัวอักษร S (ตามลำดับการอ่านจากบนลงล่างถึงล่างปกติ ) ตัวอย่างเช่นถ้า S เป็นfoodกริดเริ่มต้นของเราดูเหมือน food f.... o.... o.... d.... ที่.เป็นเพียงตัวยึดตำแหน่ง สำหรับจุดที่ว่างเปล่า (ทุกจุด.) …

30
ลิฟท์โรงแรมไสยศาสตร์
ลักษณะ นี่คือลิฟต์โรงแรมที่มีความเชื่อโชคลางมากในเซี่ยงไฮ้: หลีกเลี่ยงหมายเลข 13 เพราะสิบสามคนโชคร้ายในโลกตะวันตกและหลีกเลี่ยงตัวเลข 4 เพราะสี่คนโชคร้ายในภูมิภาคเอเชีย เกิดอะไรขึ้นถ้าโรงแรมนี้สูงขึ้น อ่านเลขจำนวนเต็มบวกnจาก STDIN แทนจำนวนชั้นและพิมพ์ว่าเค้าโครงปุ่มมีลักษณะเป็นอย่างไร: -1ตามด้วยn-1จำนวนเต็มบวกถัดไปที่ไม่เท่ากับ 13 และไม่มีตัวเลข 4 จัดเรียงสิ่งเหล่านี้ ตัวเลขในสองคอลัมน์เช่นในภาพด้านบน: พิมพ์หมายเลขสองชั้นต่อบรรทัดคั่นด้วยแท็บแนวนอนเพื่อให้การอ่านบรรทัดในลำดับย้อนกลับจากซ้ายไปขวาให้ลำดับในการเรียงลำดับ (คุณอาจพิมพ์อักขระขึ้นบรรทัดใหม่ที่ต่อท้ายด้วยก็ได้) กรณีทดสอบ สำหรับอินพุต14เอาต์พุตควรเป็นดังในภาพด้านบน: 15 16 11 12 9 10 7 8 5 6 2 3 -1 1 โดยที่ช่องว่างในแต่ละบรรทัดเป็นอักขระแท็บแนวนอนเดียว สำหรับการป้อนข้อมูลที่คุณควรพิมพ์2-1 1 สำหรับอินพุต100คุณควรพิมพ์: 120 121 118 119 116 117 113 115 111 112 109 …

30
ส่งออกคะแนนของคุณ!
ท้าทาย: แนวคิดนั้นง่ายพอ: เขียนโปรแกรมเต็มรูปแบบเพื่อให้คะแนนคะแนนกอล์ฟของตัวเอง! bytesเอาท์พุทควรจะนับไบต์ของโปรแกรมของคุณและต่อท้าย แต่รอ ..... มีข้อ จำกัด หนึ่งข้อ: ซอร์สโค้ดของคุณไม่สามารถรวมตัวเลขใด ๆ จากการนับไบต์ของคุณ ดังนั้นถ้าคะแนนของคุณเป็น186 bytesโปรแกรมของคุณไม่สามารถมีตัวอักษร1, 6หรือ8 ตัวอย่างผลลัพธ์: 315 bytes 27 Bytes 49 BYTES กฎเพิ่มเติม: อักขระช่องว่างและการขึ้นบรรทัดใหม่ที่ไม่จำเป็นถูกห้ามในซอร์สโค้ดอย่างไรก็ตามการเว้นวรรคต่อท้ายและการขึ้นบรรทัดใหม่เป็นที่ยอมรับอย่างสมบูรณ์ในเอาต์พุต ควรมีช่องว่างเดียวระหว่างจำนวนและbytesในการส่งออก ตัวอักษรเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ไม่มีการตรวจสอบตนเองหรืออ่านซอร์สโค้ด ช่องโหว่มาตรฐานไม่ได้รับอนุญาต นี่คือโค้ดกอล์ฟดังนั้น รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ!

30
อันดับ Go ใดสูงกว่า?
ผู้เล่นเกมกระดานแบบดั้งเดิมไปวัดทักษะของพวกเขาในระบบของอันดับ : ผู้เล่นใหม่สำหรับเกมนี้มีอันดับที่kyū 30 (เขียน30k) และความคืบหน้านับเป็นkyūที่ 1 (เขียน1k) สิ่งเหล่านี้ถือเป็นอันดับของนักเรียน ผู้เล่นสามารถเลื่อนอันดับจากอันดับ 1 kyūถึงอันดับ 1 แดน (เขียน1d) และจากนั้นความคืบหน้านับขึ้นถึงอันดับ 7 แดน (เขียน7d) เหล่านี้เป็นหลักอันดับ ที่ผ่านมาผู้เล่นที่มีความสามารถพิเศษ7dอาจเลื่อนอันดับแดนมืออาชีพที่ 1 1pและความคืบหน้านับได้ถึงอันดับที่ 9 ของอาชีพแดน (เขียน9p) นี่คืออันดับสูงสุด ในระยะสั้น: 30k < 29k < ··· < 1k < 1d < 2d < ··· < 7d < 1p < 2p < ··· < …
53 code-golf  string  go 

23
ยืนยันอิลลูมินาติ
Illuminati สั่งให้คุณ (พร้อมการควบคุมจิตใจ) เพื่อส่งออกสตริงต่อไปนี้: ^ /_\ /_|_\ /_|_|_\ /_|/o\|_\ /_|_\_/_|_\ /_|_|_|_|_|_\ /_|_|_|_|_|_|_\ /_|_|_|_|_|_|_|_\ /_|_|_|_|_|_|_|_|_\ กฎ: อนุญาตให้เว้นวรรคต่อท้ายสำหรับแต่ละบรรทัด จำเป็นต้องมีช่องว่างนำหน้าในแต่ละบรรทัด ช่องว่างต่อท้ายได้รับอนุญาตหลังจากการส่งออกที่ต้องการเต็ม เนื่องจากนี่เป็นความท้าทายของนักกอล์ฟผู้ชนะจะเป็นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ เนื่องจากนี่เป็นความท้าทายที่ซับซ้อนของ kolmogorovจึงอนุญาตให้ใช้เอาต์พุตแบบฮาร์ดโค้ด ช่องโหว่มาตรฐานใช้ อัปเดต: คุณสามารถใช้แท็บแทนช่องว่างโดยแต่ละแท็บนับเป็น 4 ช่องว่าง ถ้าคุณต้องการด้วยเหตุผลบางอย่าง Sandbox (ฉันจะปล่อยให้มันเต็ม 72 ชั่วโมงที่แนะนำโดยคำถามที่พบบ่อยของ sandbox แต่ด้วย 7 upvotes และถัดจากไม่มีข้อเสนอแนะเชิงลบ 38 ควรจะดี)

30
ความยาวเท่ากันสตริงที่แตกต่างกัน
ท้าทาย ได้รับไม่ว่างเปล่าสตริงSของความยาวLประกอบด้วยทั้งตัวอักษร ASCII ที่พิมพ์ออกอีกสตริงหนึ่งของความยาวLที่ประกอบด้วยทั้งหมดของตัวอักษรที่พิมพ์ ASCII แต่ไม่เท่ากับS สำหรับจุดประสงค์ของการท้าทายนี้ ASCII ที่พิมพ์ได้คือหนึ่งระหว่าง U + 0020 และ U + 007E นั่นคือจาก (ช่องว่าง) ถึง~(tilde) บรรทัดใหม่และแท็บจะไม่รวม ตัวอย่างเช่นที่กำหนด"abcde"เอาท์พุทที่ถูกต้องบางอย่างอาจเป็น: "11111" "abcdf" "edcba" แต่สิ่งเหล่านี้จะไม่ถูกต้อง: "abcde" "bcde" "abcde0" กรณีทดสอบ "asdf" "1111" " " "~~~~~" "abcba" "1" " " "~" " ~" "~ " " 0" "!@#$%^&*()ABCDEFGhijklmnop1234567890" " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" กฎระเบียบ คุณอาจถือว่าข้อมูลประกอบด้วยตัวอักษร …
53 code-golf  string 

26
ถอดรหัสสัญญาณตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ - สตริงที่ไวต่อแสง
เป้าหมาย นี่เป็นความท้าทายที่เรียบง่าย เป้าหมายของคุณคือการถอดรหัสสัญญาณสตริงด้วยการสลับตัวอักษรแต่ละตัวด้วยตัวอักษรถัดไปในกรณีเดียวกันโดยไม่เปลี่ยนแปลงตัวอักษรที่ไม่ใช่ตัวอักษร คำอธิบายทีละขั้นตอน Eตัวอักษรตัวแรกเป็น เรามองหาตัวอักษรถัดไปในกรณีที่บน: Cมันเป็น CdoE!เราสลับตัวอักษรเหล่านี้ซึ่งนำไปสู่ เราเลื่อนไปยังตัวอักษรถัดไป: dนี่คือ เรามองหาตัวอักษรถัดไปในกรณีที่ต่ำกว่า: oมันเป็น CodE!เราสลับตัวอักษรเหล่านี้ซึ่งนำไปสู่ เราก้าวไปสู่ตัวละครตัวต่อไป: นี่คือสิ่งdที่เราเพิ่งย้ายมาที่นี่ เราไม่สนใจเพราะมีการดำเนินการแล้ว เราก้าวไปสู่ตัวละครตัวต่อไป: นี่คือสิ่งEที่ถูกย้ายมาที่นี่ในขั้นตอนที่ 1 เราไม่สนใจเพราะมีการดำเนินการแล้ว เราเลื่อนไปยังตัวอักษรถัดไป: !นี่คือ เราไม่สนใจมันเพราะมันไม่ใช่ตัวอักษร กฎระเบียบ คุณสามารถสันนิษฐานได้ว่าสายป้อนข้อมูลนั้นทำจากอักขระ ASCII ที่พิมพ์ได้เท่านั้นในช่วง 32 - 126 คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่นที่พิมพ์หรือส่งคืนผลลัพธ์ หากสตริงป้อนเข้ามีจำนวนตัวอักษรคี่ตัวอักษรสุดท้ายที่เหลือจะไม่สามารถสลับกับอีกหนึ่งตัวอักษรและควรอยู่ในสถานที่ไม่ว่าในกรณีใด ตรรกะเดียวกันนี้ใช้ถ้าสตริงมีจำนวนตัวอักษรคู่ แต่จำนวนตัวอักษรตัวพิมพ์ใหญ่และเลขคี่ของตัวอักษรตัวเล็ก นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม กรณีทดสอบ Input : lLEhW OroLd! Output: hELlO WorLd! Input : rpGOZmaimgn uplRzse naC DEoO …
53 code-golf  string 

30
ความชื่นชมจากผู้ใช้ # 1: เดนนิส♦
ฉันมีความคิดที่เกิดขึ้นเองในการสร้างชุดของความท้าทายของผู้ใช้ที่ได้ช่วยเหลือและดำเนินการต่อเพื่อช่วยให้ชุมชน PPCG เป็นสถานที่ที่สนุกสนานสำหรับทุกคนหรืออาจเป็นเพียงสำหรับฉันโดยเฉพาะ : P หากคุณแปลงชื่อของเดนนิสให้เป็นอาเรย์ของ1s และ0s ที่แต่ละตัวอักษรเป็น1และสระแต่ละ0ตัวอาเรย์คือ[1, 0, 1, 1, 0, 1]ซึ่งมีความสมมาตร ดังนั้นความท้าทายของคุณคือการกำหนดชื่ออื่นเช่นนี้ ท้าทาย รับสตริง ASCII ลบอักขระทั้งหมดที่ไม่ใช่ตัวอักษรและพิจารณาว่าการกำหนดค่าของสระและพยัญชนะมีความสมมาตรหรือไม่ yไม่ใช่เสียงสระ โปรดทราบว่าโปรแกรมของคุณไม่จำเป็นต้องเป็นสตริงประเภทนี้ กรณีทดสอบ Dennis -> truthy Martin -> truthy Martin Ender -> truthy Alex -> falsy Alex A. -> truthy Doorknob -> falsy Mego -> falsy การดำเนินการอ้างอิง รหัส Python 3 นี้จะให้ผลลัพธ์ที่ถูกต้องในกรณีทดสอบ มันไม่ได้เลวร้ายอย่างที่ฉันสามารถทำได้โดยไม่ต้องไร้สาระ …

30
การแกงตามความยาวโดยพลการ
เขียนฟังก์ชันfที่ใช้จำนวนเต็มบวกและส่งคืนฟังก์ชัน fฟังก์ชั่นใหม่กลับควรจะเหมือนกับ อย่างไรก็ตามเมื่อ "การยกเลิกการโทร" เกิดขึ้นfควรส่งคืนผลรวมของจำนวนเต็มทั้งหมดที่ส่งผ่านแทน ตัวอย่างเช่นg=f(4)(ถ้าfเป็นฟังก์ชันแรก) ควรตั้งgเป็นฟังก์ชั่นอื่น h=g(3)จะทำเช่นเดียวกัน อย่างไรก็ตามเมื่อคุณโทรhโดยไม่มีอาร์กิวเมนต์ (ดูรายละเอียดด้านล่าง) มันควรจะส่งออก 7 เนื่องจากเป็นผลรวมของอาร์กิวเมนต์ของฟังก์ชันก่อนหน้า ใส่อีกวิธีหนึ่ง, f(3)(4)() == 7. f(3,4)()ไม่ทราบเรื่องนี้ไม่ได้เช่นเดียวกับ "การยุติการโทร" เป็นหนึ่งในตัวเลือกต่อไปนี้ (ตัวเลือกของคุณ): เรียกอาร์กิวเมนต์ w / o null เป็นอาร์กิวเมนต์ ค่าที่ไม่เป็นบวกใด ๆ จำนวนการเรียกใช้ฟังก์ชันตามอำเภอใจควรได้รับการสนับสนุนไม่มีข้อ จำกัด ที่กำหนดไว้ล่วงหน้า รับประกันได้ว่ายอดรวมจะไม่มากกว่า 1'000 เราสามารถสันนิษฐานได้ว่ามีการโทรอย่างน้อยหนึ่งครั้งก่อนที่จะ "ยกเลิกการโทร" รหัสของคุณไม่ควรใช้ตัวแปรแบบคงที่ต่อโปรแกรมดังนั้นจึงควรเป็นไปได้ที่จะเรียกใช้การทดสอบหลายครั้งในรันไทม์เดียวกันและสังเกตพฤติกรรมที่เหมือนกันทุกประการ ตัวอย่าง: f(1)() == 1 f(4)(2)(7)() == 13 f(4)(2)(7)(5)(2)() == 20

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