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

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

1
นี่คือผู้สมัครหมายเลข Calvin หรือไม่
ความท้าทายนี้เป็นเครื่องบรรณาการให้ตำนานของเราท้าทายนักเขียน™เป็น ของเคลวินอดิเรก - ตอนนี้เปลี่ยนชื่อเป็นHelka Homba - ในจิตวิญญาณเดียวกับที่ สร้างตัวเลขเดนนิส คาลวินเป็นผู้สนับสนุน PPCG ที่น่าประทับใจโดยมีชื่อเสียงเป็นอันดับที่ 6 โดยรวมและอาจเป็นทักษะการเขียนที่ท้าทายที่สุดจากเราทุกคน อย่างไรก็ตามสำหรับความท้าทายนี้เราจะมุ่งเน้นไปที่ ID ผู้ใช้ของเขา 26997 อาจดูไม่น่าสนใจในตอนแรก ในความเป็นจริงมัน น่าสนใจเกือบไม่กี่วิธี ตัวอย่างเช่นนี่คือแผนภูมิ26997 mod <n>สำหรับค่าบางอย่างของn: n | 26997 % n ----+----------- 3 | 0 4 | 1 5 | 2 6 | 3 7 | 5 :( 8 | 5 9 | …

3
การเติมน้ำแข็ง Cube โดยพลการ
สมมติว่ากริดของช่องว่างนี้และXแสดงถึงส่วนตัดของถาดน้ำแข็งเปล่าที่มีรูปร่างแปลก ๆ: X X X X X X XX X XX X XXXXXX XXXXXXXXXXXXX คอลัมน์ที่ไม่Xได้เป็นตัวแทนของรูหรือช่องว่างในถาดที่ไม่สามารถกักเก็บน้ำได้ น้ำที่ตกลงมาจากขอบซ้ายหรือขวาสุดของกริดจะเข้าสู่อ่างที่ไม่มีที่สิ้นสุดเช่นกัน หากเราต้องวางก๊อกน้ำเหนือถาดและให้เติมน้ำจนระดับน้ำในห้องทั้งหมดยังคงมีความเสถียรช่องที่แน่นอนที่เติมจะขึ้นอยู่กับตำแหน่งที่น้ำไหลอยู่เหนือถาด (สมมติว่ามีกระแสน้ำที่บางและมั่นคงโดยไม่มีการสาด) ตัวอย่างเช่นถ้า faucet ของเราFอยู่เหนือคอลัมน์กริดที่เหลือ F X X X X X X XX X XX X XXXXXX XXXXXXXXXXXXX น้ำจะตกลงมาถึงจุดสูงสุดXในคอลัมน์นั้นและกระจายไปทางซ้ายและขวาครึ่งซ้ายที่หกลงในอ่างด้านล่างและครึ่งทางขวาเติมช่อง 2 × 1 เมื่อช่องเติมน้ำครึ่งทางขวาของกระแสน้ำไหลไม่ไหล แต่เข้าสู่อ่างล้างจานและระดับน้ำในทุกที่นั้นคงที่ เมื่อปิดก๊อกน้ำถาดจะมีลักษณะดังนี้: ( ~เหมือนน้ำ) X X X X~~X X XX X …

4
อาร์ไกล์ ASCII ศิลปะ
เขียนโปรแกรม (หรือฟังก์ชั่น) ที่ใช้จำนวนเต็มบวก หากอินพุตคือ1ให้พิมพ์ (หรือส่งคืน) เพชรสองเม็ดที่อยู่ติดกันแบบเรียงต่อกันแต่ละอันมีความยาวด้านข้างเท่ากับ 1 ทับ: /\/\ \/\/ สำหรับทุกอินพุตที่Nมากกว่า 1 ให้ดูที่เอาต์พุตสำหรับN-1และสำหรับแต่ละคู่ของเพชรข้างเคียงใส่เพชรใหม่ในระหว่างที่พวกเขามีความยาวด้านคือผลรวมของความยาวด้านของทั้งสองประเทศเพื่อนบ้าน พิมพ์ (หรือส่งคืน) รูปแบบเพชรใหม่นี้ ดังนั้นเมื่อ2มีการป้อนข้อมูลเราจะดูที่เอาท์พุท1และจะเห็นว่ามีเพชรข้างเคียงสองอันที่มีความยาวด้าน 1 ดังนั้นเราจึงแทรกความยาวด้าน 2 (1 + 1) เพชรไว้ระหว่าง: /\ /\/ \/\ \/\ /\/ \/ สำหรับอินพุต3เราดูที่เอาต์พุต2และเพิ่มสองเพชรที่มีความยาวด้าน 3 (1 + 2 และ 2 + 1) ระหว่างสองคู่ของเพชรข้างเคียง: /\ /\ / \ /\ / \ /\/ \/ \/ …

6
พิซซ่ามีความยุติธรรมหรือไม่?
คำถามนี้เป็นแรงบันดาลใจและเป็นสิ่งที่ตรงกันข้ามของคนนี้ Dennis ( E), Doorknob ( D), Martin ( M) และ Chris ( C) สั่งพิซซ่า พิซซ่ารูปสี่เหลี่ยมผืนผ้าแบ่งออกเป็นชิ้นสี่เหลี่ยมจัตุรัส เขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับพิซซ่ารูปสี่เหลี่ยมผืนผ้าประกอบด้วย 0 หรือมากกว่าของแต่ละตัวอักษรกำหนดว่า: ชิ้นสำหรับแต่ละบุคคลแต่ละคนเป็นเส้นทางที่เชื่อมต่อ ซึ่งหมายความว่าตัวอักษรทั้งหมดที่เหมือนกันควรอยู่ติดกันกับแต่ละคนโดยตรง (ไม่มีการเชื่อมต่อในแนวทแยงมุม) จำนวนชิ้นต่อคนเหมือนกันสำหรับทุกคน คุณต้องส่งออกค่าความจริง / เท็จด้วยการขึ้นบรรทัดใหม่ที่เป็นตัวเลือกที่บ่งชี้ว่าพิซซ่าที่ระบุนั้นมีความยุติธรรมหรือไม่ ผลทดสอบที่ถูกต้อง: DDDDDDDDDDDDMCCCCCCCCCCC DEEEEEEEEEEDMMMMMMMCCCCC DEEEEEEEEEEDMMMCCCCCCCCC DEEEEEEEEEEDMMMMMMMMCCCC DDDDDDDDDDDDMMMMMMMMMMMC DEMC DD EE MC MC EEDDMMMCCC EEEDDDMMCC การทดสอบไม่ถูกต้อง: EDM EDMCCMDE DDDDDDDDDDDDMCCCCCCCCCCC DEEEEEEEEEEDMMMMMMMCCCCC DEEEEEEEEEEMDMMCCCCCCCCC DEEEEEEEEEEDMMMMMMMMCCCC DDDDDDDDDDDDMMMMMMMMMMMC DDMMEECC DMMEECCC รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ

25
ย้อนกลับและกลับสตริง
ย้อนกลับและกลับสตริง ท้าทาย ในการท้าทายนี้ คุณจะเขียนโปรแกรมที่จะส่งออกหรือกลับเข้า, ย้อนกลับและกลับ ขั้นแรกให้เปลี่ยนอักขระแต่ละตัวเป็นรหัสอักขระ จากนั้นควรแปลงเป็น base-2 ต่อไปนี้สตริงที่ควรย้อนกลับ หลังจากนั้นสตริงควรกลับด้าน (1 -> 0 และ 0 -> 1) สุดท้ายนี้ควรแปลงกลับเป็นฐาน 2 แล้วแปลงกลับเป็นอักขระ หากตัวละครเป็นผลลัพธ์ที่ไม่สามารถพิมพ์ได้คุณอาจเลือกที่จะเอาท์พุท แต่ไม่จำเป็นต้องลบออก H -> 72 -> 1001000 -> 0001001 -> 1110110 -> 118 -> v e -> 101 -> 1100101 -> 1010011 -> 0101100 -> 44 -> , l -> …

18
จัดข้อความชิดขวา
งานของคุณคือการใส่สายอักขระและตัวเลขและจัดเรียงสตริงทางด้านขวาทำให้ความกว้างของข้อความเป็นตัวเลข เมื่อบรรทัดยาวเกินไปให้แบ่งและวางที่เหลือในบรรทัดถัดไปทำซ้ำจนกว่าจะไม่จำเป็น หากบรรทัดสั้นกว่าความกว้างให้ขีดด้วยช่องว่าง อาจมีการขึ้นบรรทัดใหม่หลายครั้งและควรได้รับการปฏิบัติเหมือนอักขระอื่น ตัวอย่างเช่นสตริง Programming Puzzles & Code Golf และจำนวน5จะผลิต: Progr ammin g Puzzl es & Code Golf ในขณะที่สตริงเดียวกันและจำนวน10จะผลิต: Programmin g Puzzles & Code Golf สตริง a b และหมายเลข 5 จะผลิต: a <-- note the 5 spaces b รหัสที่สั้นที่สุดชนะ!
27 code-golf  string 

1
คะแนน ASCII
เมื่อขุดลึกลงไปในโฟลเดอร์ temp ของคุณคุณจะพบว่ามีองค์ประกอบบางอย่างสำหรับเปียโน น่าเสียดายที่องค์ประกอบเหล่านี้เขียนด้วยชื่อโน้ตและระยะเวลาเท่านั้นและคุณมีสิทธิ์เข้าถึงเทอร์มินัลข้อความเท่านั้น ดังนั้นงานของคุณคือการเขียนโปรแกรมเพื่อแสดงองค์ประกอบเป็น ASCII art อินพุต โปรแกรมของคุณควรยอมรับสองสายเป็นอินพุต สตริงแรกจะแสดงบันทึกย่อของเจ้าหน้าที่ระดับสูง (พร้อมด้วยเสียงแหลม) ในขณะที่สตริงที่สองจะเป็นตัวแทนบันทึกย่อของพนักงานด้านล่าง หมายเหตุจะถูกส่งผ่านไปในสัญกรณ์วิทยาศาสตร์ขว้าง บันทึกของพนักงานระดับท็อปจะอยู่ระหว่างC4และC6รวมอยู่ด้วยเสมอ บันทึกย่อของพนักงานด้านล่างจะอยู่ระหว่างC2และC4รวมอยู่ด้วยเสมอ 1แต่ละครั้งจะมาพร้อมกับระยะเวลาซึ่งจะเป็นหนึ่งใน: 2, 4, 8, สิ่งเหล่านี้เป็นตัวแทนของบันทึกย่อทั้งหมด (semibreve), ครึ่งโน้ต (ย่อเล็กสุด), บันทึกไตรมาส (crotchet) และโน้ตแปด (quaver) ตามลำดับ หมายเหตุของระยะเวลาอื่นใดจะไม่ปรากฏในอินพุต วิธีแยกบันทึกย่อและระยะเวลาและวิธีแยกบันทึกย่อแต่ละรายการจากบันทึกอื่น ๆ ในอินพุทนั้นขึ้นอยู่กับดุลยพินิจของคุณ ต่อไปนี้เป็นตัวอย่างอินพุตสำหรับเจ้าหน้าที่ระดับสูง: E4/4 A4/8 C#5/8 E5/2 ที่นี่โน้ตจะถูกคั่นด้วยช่องว่างและระยะเวลาจะถูกแยกออกจากโน้ตด้วยเครื่องหมายสแลช delimeter เหล่านี้ไม่ได้รับการแก้ไขและคุณสามารถเลือกที่จะเปลี่ยนหรือละเว้นพวกเขาทั้งหมด คุณอาจคิดว่ามีอย่างน้อยหนึ่งบันทึกในพนักงานแต่ละคน ไม่มีการพักในอินพุต เอาท์พุต โปรแกรมของคุณคือส่งออกคะแนนเป็น ASCII art ซึ่งสอดคล้องกับคำอธิบายต่อไปนี้ Clefs ควรเป็นสิ่งแรกที่ด้านซ้ายของเอาต์พุตของคุณ (ระยะห่างระหว่างเสาทั้งสองไม่ควรเปลี่ยน): …

2
Vim - ล้อมรอบบรรทัดความคิดเห็นพร้อมกับอักขระความคิดเห็น
วันนี้ฉันรู้ว่าฉันมักจะชอบกำหนดส่วนต่างๆในรหัสของฉันดังนี้: #################### # Helper Functions # #################### แต่มันน่าเบื่อที่จะทำ สมมติว่าฉันมีสายเช่นนี้: # Helper Functions # ชุดการvimกดแป้นที่สั้นที่สุดที่จะรวมไว้ใน#คืออะไร? การเลื่อนไม่ถือเป็นการกดแป้นในการท้าทายนี้ กรณีทดสอบ: Input: "#test test test#" Output: ################ #test test test# ################ Input: "#this is a nice block comment#" Output: ############################## #this is a nice block comment# ############################## Input: "# s p a c e s …
27 code-golf  vim  comment 

3
Squarefinder - ค้นหา tetragons ปกติ
ลองนึกภาพสี่เหลี่ยมจัตุรัสที่วาดบนระนาบสี่เหลี่ยมแต่ละอันมีจุดยอดที่พิกัดจำนวนเต็มและด้านข้างขนานกับแกน รูปสี่เหลี่ยมผืนผ้าแบ่งส่วนของเครื่องบินออกเป็นส่วน ๆ ของส่วนที่แยกออกซึ่งมีสีแดงและน้ำเงินด้านล่าง: เป้าหมายของคุณคือการหาจำนวนของพื้นที่ดังกล่าวซึ่งเป็นสี่เหลี่ยมที่สมบูรณ์แบบ ในตัวอย่างด้านบนมีสาม: โปรดทราบว่าสี่เหลี่ยมขนาดใหญ่ที่อยู่ตรงกลางจะไม่ถูกนับเนื่องจากไม่ใช่พื้นที่เดียว แต่ถูกสร้างขึ้นจากพื้นที่ที่มีขนาดเล็กกว่าหลายจุด อินพุต คุณสามารถเขียนฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบสำหรับความท้าทายนี้ อินพุตจะเป็น4nจำนวนเต็มที่ไม่ใช่ค่าลบซึ่งกำหนดnสี่เหลี่ยมในระนาบ แต่ละรูปสี่เหลี่ยมผืนผ้าเป็นตัวแทนจากสองจุดตรงข้ามเช่น4 9 7 8แสดงให้เห็นถึงรูปสี่เหลี่ยมผืนผ้าที่มีจุดตรงข้ามและ(4, 9) (7, 8)โปรดทราบว่าสี่เหลี่ยมผืนผ้านี้อาจจะมีการแสดงเป็นหรือ7 8 4 94 8 7 9 รูปแบบการป้อนข้อมูลที่แน่นอนมีความยืดหยุ่น (เช่นสตริงคั่นด้วยช่องว่าง, สตริงคั่นด้วยเครื่องหมายจุลภาค, อาร์เรย์จำนวนเต็มเดียว, รายการพิกัด tuples และอื่น ๆ ) แต่โปรดสมเหตุสมผลและยกตัวอย่างวิธีการเรียกใช้โค้ดของคุณในโพสต์ของคุณ คุณไม่สามารถจัดลำดับอินพุตใหม่ได้ เพื่อความง่ายคุณสามารถสรุปได้ว่าจะไม่มีการซ้อนสองขอบซึ่งรวมถึงการซ้อนทับที่จุดสุดยอด โดยเฉพาะอย่างยิ่งนี่ก็หมายความว่าไม่มีรูปสี่เหลี่ยมผืนผ้าสองรูปใดที่จะสัมผัสจากมุมหนึ่งไปยังอีกมุมหนึ่งและจากมุมหนึ่งไปยังอีกมุมหนึ่ง เอาท์พุต โปรแกรมของคุณควรพิมพ์หรือคืนค่าจำนวนเต็มเดียวซึ่งเป็นจำนวนของพื้นที่สี่เหลี่ยมจัตุรัส เกณฑ์การให้คะแนน นี่คือโค้ดกอล์ฟดังนั้นโค้ดในจำนวนไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ กรณีทดสอบ การป้อนข้อมูล: 0 0 5 5 6 8 10 …

10
เบ็ดยาวผลิตภัณฑ์
หนุ่มแผนภาพคือการจัดเรียงของกล่องในแถวซ้ายธรรมและคอลัมน์บนธรรม สำหรับแต่ละช่องจะมีช่องว่างทั้งหมดด้านบนและด้านซ้าย XXXXX XXX XXX X ยาวเบ็ดของกล่องเป็นจำนวนของกล่องไปทางขวาในแถวของตนและด้านล่างในคอลัมน์ของตัวเองนอกจากนี้ยังนับครั้งเดียว ตัวอย่างเช่นกล่องที่สองมีความยาวของตะขอที่ 6: X**** X*X X*X X นี่คือความยาวของตะขอทั้งหมด: 86521 532 421 1 เป้าหมายของคุณคือคำนวณผลิตภัณฑ์8*6*5*2*1*5*3*2*4*2*1*1 = 115200ของความยาวเบ็ดที่นี่ (อ่านเกี่ยวกับสูตรความยาวตะขอหากคุณสนใจว่าเพราะเหตุใดการแสดงออกนี้จึงสำคัญ การป้อนข้อมูล:คอลเลกชันของแถวขนาดเป็นตัวเลขเช่น[5,3,3,1]หรือเป็นสัญลักษณ์เอกซ้ำเหมือนหรือ[[1,1,1,1,1], [1,1,1], [1,1,1], [1]] "XXXXX XXX XXX X"คุณสามารถคาดหวังว่ารายการจะเรียงลำดับจากน้อยไปมากหรือจากมากไปน้อย รายการจะไม่ว่างเปล่าและมีจำนวนเต็มบวกเท่านั้น เอาท์พุท:ผลิตภัณฑ์ของความยาวเบ็ดซึ่งเป็นจำนวนเต็มบวก ไม่ต้องกังวลกับจำนวนเต็มล้นหรือรันไทม์ ไม่อนุญาตให้ใช้บิวด์อินเฉพาะกับ Young diagrams หรือ partition จำนวนเต็ม กรณีทดสอบ: [1] 1 [2] 2 [1, 1] 2 [5] 120 [2, …

7
ขยายขนาดการปูกระเบื้องเพชร
รูปหกเหลี่ยมปกติใด ๆ สามารถปูด้วยเพชรได้เช่น: ______ /_/_/\_\ /_/\_\/\_\ /\_\/_/\/_/\ \/_/\_\/_/\/ \_\/_/\_\/ \_\_\/_/ เราจะพิจารณาด้านบนปูกระเบื้องขนาด1(ตั้งแต่ด้านข้างเพชรจะทำอย่างใดอย่างหนึ่ง/หรือ\แต่ละคน) ปูกระเบื้องขนาดเดียวกัน2จะมีลักษณะ: ____________ / / /\ \ /___/___/ \___\ / /\ \ /\ \ /___/ \___\/ \___\ /\ \ / /\ / /\ / \___\/___/ \/___/ \ \ / /\ \ / /\ / \/___/ \___\/___/ \/ \ \ / …

25
ค้นหาเลขฐานสองขนาด 1 เบาบางต่อไป
จำนวนเต็มบวก N คือK -sparse หากมีอย่างน้อยK 0s ระหว่าง 1s สองใด ๆ ที่ต่อเนื่องกันในการแทนค่าฐานสอง ดังนั้นหมายเลข 1010101 นั้นคือ 1-sparse แต่ไม่ใช่ 101101 งานของคุณคือค้นหาหมายเลข 1 เบาบางถัดไปสำหรับหมายเลขอินพุตที่กำหนด ตัวอย่างเช่นถ้าอินพุทเป็น 12 ( 0b1100) เอาต์พุตควรเป็น 16 ( 0b10000) และถ้าอินพุทเป็น 18 ( 0b10010) เอาต์พุตควรเป็น 20 ( 0b10100) โปรแกรมหรือฟังก์ชันที่เล็กที่สุด (เป็นไบต์) ชนะ! ช่องโหว่มาตรฐานไม่อนุญาต

7
มั่นใจอุปมา
ไม่กี่คนที่นี่อาจเป็นผู้อ่าน XKCD ตัวยง ดังนั้นฉันคิดว่าฉันขอท้าให้พวกคุณทำในสิ่งที่เมแกนสามารถทำได้อย่างง่ายดาย: สร้างสคริปต์ที่สร้างอุปมาเรื่องความมั่นใจนับพันเกี่ยวกับสิ่งที่คอมพิวเตอร์ไม่สามารถทำได้ สคริปต์ของคุณ สามารถเขียนได้ทุกภาษา จะต้องมีรหัส - golfed จะต้องป้อนข้อมูล ( stdinหรือเทียบเท่าภาษาของคุณ) กับจำนวนของคำอุปมาที่จะคายออก (คุณสามารถถือว่าสิ่งนี้จะไม่เกินMAX_INTหรือเทียบเท่า) จะส่งออกคำอุปมาที่สร้างแบบสุ่มจำนวนหนึ่ง คำอุปมามีดังนี้ เริ่มต้นด้วย 'Computers will never ' ถัดไปซึ่งเป็นหนึ่งใน 16 คำกริยาภาษาอังกฤษที่ไม่ซ้ำกันซึ่งคุณสามารถเลือกได้อย่างอิสระเพื่อเพิ่มประสิทธิภาพของโปรแกรมของคุณ แต่ต้องรวมถึงการและcode-golfunderstand ถัดไปซึ่งเป็นหนึ่งใน 16 คำนามภาษาอังกฤษที่ไม่ซ้ำกันอีกครั้งซึ่งคุณสามารถเลือกได้อย่างอิสระเพื่อเพิ่มประสิทธิภาพของโปรแกรมของคุณ แต่ต้องรวมถึงการและa saladan octopus ถัดไปซึ่งเป็นหนึ่งใน 16 ข้อภาษาอังกฤษที่ไม่ซ้ำกันซึ่งคุณสามารถเลือกได้อย่างอิสระเพื่อเพิ่มประสิทธิภาพของโปรแกรมของคุณ แต่ต้องรวมถึงการและfor funafter lunch ลงท้ายด้วยอักขระขึ้นบรรทัดใหม่ ( \nหรือเทียบเท่า) ตัวอย่างเช่นถ้าอินพุตเป็น2เอาต์พุตที่ถูกต้องจะเป็น Computers will never code-golf a salad for lunch …

24
เรียงลำดับอย่างรวดเร็ว!
ดี ... มี 59 คำถาม (ตอนนี้ 60) ที่ติดแท็กการเรียงลำดับแต่ไม่มีคำตอบง่าย ๆ ที่จะต้องได้รับการแก้ไข สำหรับผู้ที่ไม่คุ้นเคยกับquicksortนี่คือรายละเอียดความเอื้อเฟื้อของ Wikipedia- เลือกองค์ประกอบที่เรียกว่าpivotจากอาร์เรย์ จัดลำดับอาร์เรย์ใหม่เพื่อให้องค์ประกอบทั้งหมดที่มีค่าน้อยกว่าเดือยมาก่อนหน้าเดือยในขณะที่องค์ประกอบทั้งหมดที่มีค่ามากกว่าเดือยมาหลังจากนั้น (ค่าเท่ากันสามารถไปทางใดทางหนึ่ง) หลังจากการแบ่งพาร์ติชันนี้เดือยจะอยู่ในตำแหน่งสุดท้าย สิ่งนี้เรียกว่าการดำเนินการพาร์ติชัน ใช้ขั้นตอนข้างต้นซ้ำกับองค์ประกอบย่อยที่มีค่าน้อยกว่าและแยกย่อยกับองค์ประกอบย่อยที่มีค่ามากกว่า กฎระเบียบ กฎง่าย ๆ : ใช้ quicksort เชิงตัวเลขในภาษาการเขียนโปรแกรมที่คุณเลือก เดือยควรจะเลือกโดยการสุ่มหรือกับค่ามัธยฐานของสาม (องค์ประกอบที่ 1, สุดท้ายและกลาง) โปรแกรมของคุณอาจเป็นโปรแกรมหรือฟังก์ชั่นที่สมบูรณ์ คุณสามารถรับอินพุตโดยใช้ STDIN, บรรทัดคำสั่งหรือพารามิเตอร์ฟังก์ชัน หากใช้อินพุตสตริงอินพุตจะถูกคั่นด้วยช่องว่าง อินพุตอาจมีค่าทศนิยมและค่าลบ อย่างไรก็ตามจะไม่มีการซ้ำซ้อน คุณอาจส่งออกไปยัง STDOUT หรือโดยกลับมาจากฟังก์ชั่น ไม่มีฟังก์ชั่นการเรียงลำดับ (หรือการเรียงลำดับที่เกี่ยวข้อง) ในตัวหรือช่องโหว่มาตรฐาน รายการอาจมีความยาวโดยพลการ โบนัส # 1: ในรายการหรือรายการย่อยที่มีความยาว <= 5 ให้ใช้การเรียงลำดับการแทรกเพื่อเร่งความเร็วให้เร็วขึ้น …

23
สลับตัวพิมพ์ใหญ่เป็นสองสตริง
your shift key is broken. wheNever you type two lines, the cApitaL LetteRs in them get swappeD. you must write a program to fiX THIS! ลักษณะ อินพุตเป็นสองสตริงs1และs2มีความยาวเท่ากัน แต่ละรายการจะมี ASCII ที่พิมพ์ได้เท่านั้นและมีความยาวอย่างน้อยหนึ่งตัว คุณสามารถป้อนสิ่งเหล่านี้เป็นสองสายอาร์เรย์ของสองสายหรือสายเดียวกับs1และs2คั่นด้วยแท็บหรือขึ้นบรรทัดใหม่ ผลลัพธ์มีดังต่อไปนี้: สำหรับตัวละครแต่ละตัวcในs1: หากตัวละครไม่ใช่ตัวอักษรให้เอาออกมันไม่เปลี่ยนแปลง มิฉะนั้นถ้าcเป็นจดหมาย: ค้นหาตัวละครจับคู่ (หนึ่งที่ดัชนีเดียวกัน) s2ใน ถ้าเป็นอักษรตัวcใหญ่ให้พิมพ์ผลลัพธ์เป็นตัวพิมพ์ใหญ่ หากเป็นตัวอักษรตัวเล็กให้พิมพ์เป็นตัวcพิมพ์เล็ก มิฉะนั้นเอาต์พุตจะcไม่เปลี่ยนแปลง จากนั้นทำสิ่งเดียวกันยกเว้นด้วยs1และs2สลับ เป็นหลักในทุกตัวอักษรs1ที่ตัวละครที่ตรงกันในs2เป็นเมืองหลวงควรเป็นตัวพิมพ์ใหญ่และตัวอักษรทั้งหมดในs1ด้วยตัวอักษรตัวพิมพ์เล็กที่ดัชนีเดียวกันในs2ควรจะเป็นตัวพิมพ์เล็ก (และในทางกลับกัน) กรณีทดสอบ การป้อนข้อมูล: ABCDEfghijKlMnOpqrstuvwxyz aaaaaaaaaaaaaaaa---------- เอาท์พุท: abcdefghijklmnopqrstuvwxyz …
27 code-golf  string 

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