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

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

10
การทรงตัวคร่อม
คุณจะได้รับสตริง (อาจว่างเปล่า) ที่มีเครื่องหมายวงเล็บ ( [{()}]) และอักขระอื่น ๆ ( A- Z, a- z, 0- 9, เครื่องหมายวรรคตอน) คุณต้องตรวจสอบว่ามันเป็นไปตามกฎต่อไปนี้: อักขระที่ไม่ใช่วงเล็บเหลี่ยมจะถูกละเว้น ทุกวงเล็บเปิดมีวงเล็บปิด[{( )}]ดังนั้นจึง[](ไม่ได้รับอนุญาต วงเล็บซ้อนกันอย่างเหมาะสม [(])ไม่อนุญาต วงเล็บปีกกาไม่สามารถมีวงเล็บสี่เหลี่ยมอยู่ภายในได้ วงเล็บปีกกาแบบง่ายไม่สามารถมีวงเล็บปีกกาหรือสี่เหลี่ยมจัตุรัสได้ ดังนั้น[({})], [{[]}]และ({})ไม่ได้รับอนุญาต วงเล็บสามารถซ้อนอยู่ในวงเล็บที่คล้ายกันดังนั้นจึง[[{((()))}{{(())}}]()]{()}อนุญาต เอาท์พุทเป็นค่าความจริง / เท็จเดียวตามที่คุณเลือก รหัสที่สั้นที่สุดชนะ กรณีทดสอบ b[[a{(/)}(())+={{}-}],] -> ถูกต้อง ([h][e][l][l][o]) -> ไม่ถูกต้อง [///[{(\/(arg()))}1{{((-)-2)}}]()]{()} -> ถูกต้อง hi -> ถูกต้อง

5
เคาน์เตอร์ล็อคแบบผสม
ฉากคือ: ปีเตอร์อยู่ที่โรงยิมพร้อมกับเพื่อนของเขาไบรอันเมื่อจู่ ๆ ไบรอันต้องการผู้ช่วยหายใจของเขา ไบรอันจัดการบอกรหัสให้ Peter ทราบรหัสล็อคของเขาก่อนที่เขาจะทรุดตัวลงบนพื้น ช่วงเวลาที่ปีเตอร์ไปถึงตู้เก็บของไบรอันและเห็นว่าตัวบ่งชี้ชี้ไปที่ใดสตีวีก็ซุ่มโจมตีเขาและฉีดสเปรย์พริกไทยเต็มกระป๋องลงบนใบหน้าของเขา ปีเตอร์ตอนนี้ต้องพยายามที่จะเปิดล็อคโดยไม่ได้มองมัน เขาเริ่มหมุนหน้าปัดไปทางขวานับตัวเลขขณะที่เขาเดินผ่านพวกเขา จากนั้นเขาตามหมายเลขที่ถูกต้องเริ่มหมุนหน้าปัดไปทางซ้ายยังคงนับและในที่สุดก็หมุนไปทางขวาจนกว่าล็อคจะเปิดขึ้น ความท้าทาย: เขียนฟังก์ชั่น / โปรแกรมที่รับอินพุตได้สองอินพุตการรวมกันจาก Brian และตำแหน่งตัวบ่งชี้ เอาท์พุทตัวเลขปีเตอร์ต้องนับ กฎ: ชุดค่าผสมและตำแหน่งตัวบ่งชี้ต้องเป็นอาร์กิวเมนต์แยกต่างหาก อินพุตอาจมาจากพรอมต์คำสั่งหรือเป็นอาร์กิวเมนต์ของฟังก์ชัน เอาต์พุตจะต้องถูกพิมพ์ไปที่หน้าจอ / แสดงเป็นอย่างอื่น (ไม่ใช่ไฟล์) สมมติว่าตำแหน่งเริ่มต้นไม่เหมือนกับหมายเลขแรกและตัวเลขทั้งสามตัวในชุดค่าผสมนั้นไม่ซ้ำกัน มันคือล็อคที่แสดงในภาพด้านล่างโดยมีตัวเลขที่เป็นไปได้: 0-39 คำแนะนำ: ในการเปิดล็อคด้านล่างคุณจะต้องทำตามคำแนะนำ: คุณต้องรู้รหัสของคุณ สมมติว่ามันเป็น (38, 16, 22) ในตอนนี้ หมุนปุ่มหมุน 3 ครั้งไปทางขวา (ผ่านหมายเลขเริ่มต้นสามครั้ง) จากนั้นหยุดเมื่อหมายเลขแรก (38) สอดคล้องกับสัญลักษณ์ หมุนหน้าปัด 1 จนสุดโดยหมุนไปทางซ้ายผ่านหมายเลขแรกและหยุดเมื่อตัวเลขที่สอง (16) เรียงกันด้วยตัวบ่งชี้ หมุนปุ่มหมุนไปทางขวาและหยุดเมื่อตัวเลขที่สาม (22) …
20 code-golf  number 

6
สตริงข้อความศิลปะ ASCII
งาน คุณต้องเขียน ASCII Art Text ตามที่เห็นจากเว็บไซต์นี้เพื่อสร้าง ASCII art ! กฎระเบียบ อินพุตจะเป็นข้อความและช่องว่างตามตัวอักษรเท่านั้นและจะป้อนเป็นบรรทัดเดียว มันยังไม่คำนึงถึงขนาดตัวพิมพ์ คุณไม่จำเป็นต้องแก้ไขถ้าข้อความที่ส่งออกยาวเกินความกว้างของเทอร์มินัล ตราบใดที่มันถูกต้องหากหน้าต่างเทอร์มินัลยืดหยุ่นได้อย่างไร้ขีด จำกัด คุณจะสบายดี นอกเหนือจากช่องโหว่มาตรฐานกฎอื่น ๆ เพียงอย่างเดียวคือคุณไม่สามารถใช้บิวด์อินได้แม้ว่าภาษาของคุณจะมีบิวด์อิน(ซึ่งจะน่าทึ่ง ) หากคุณรวมไว้ในโน้ตด้านข้าง คำตอบรับโบนัส 15% จากทางออกของการเล่นกอล์ฟของคุณ! ตัวอย่าง: การป้อนข้อมูล: ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz เอาท์พุท: _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _______ _____ _______ _____ _____ _____ _____ …

9
สุขสันต์วันฟีโบนักชี!
พื้นหลัง วันนี้ (หรือเมื่อวาน) คือ (หรือเคย) 11/23 หรือวัน Fibonacci! จะมีวิธีใดที่ดีไปกว่าการเฉลิมฉลองการทำเค้ก fibonacci? ตัวอย่าง 3 ii i_i_ii_i_i 8 ii ii ii ii ii ii ii ii i ii i i ii i i ii i i ii i i ii i i i ii i i i i ii i i i i …

11
สร้างตัวแปลงรายการตัวเลข
คุณไม่ได้เกลียดเมื่อคุณต้องการคัดลอกวางรายการตัวเลข (เวกเตอร์, อาร์เรย์ ... ), จากโปรแกรมหนึ่งไปยังอีกโปรแกรมหนึ่ง แต่รูปแบบที่คุณมีตัวเลขนั้นไม่ตรงกับรูปแบบที่คุณต้องการ ? ตัวอย่างเช่นใน MATLAB คุณอาจมีช่องว่างคั่นรายการดังนี้: [1 2 3 4 5] (you can also have it comma separated, but that's not the point) ใน Python คุณจะต้องใส่เครื่องหมายจุลภาคเพื่อให้รายการนั้นเป็นอินพุตที่ถูกต้องดังนั้นคุณต้องแปลงเป็น [1, 2, 3, 4, 5] เพื่อให้มันทำงาน ใน C ++ คุณอาจต้องการสิ่งต่อไปนี้: {16,2,77,29} และอื่น ๆ เพื่อทำให้ชีวิตของทุกคนง่ายขึ้นให้สร้าง list converter ที่รับรายการในทุกรูปแบบ * และส่งออกรายการในรูปแบบอื่นที่ระบุ …

2
Combinatorics ของทรานซิสเตอร์
วิดีโอเกมทรานซิสเตอร์มีระบบความสามารถที่น่าสนใจมาก คุณรวบรวม 16 "ฟังก์ชั่น" ซึ่งคุณสามารถใช้ในช่องที่แตกต่างกัน 16 ช่อง สิ่งที่น่าสนใจคือมีสล็อต 3 ประเภทและทุกฟังก์ชั่นจะทำงานแตกต่างกันไปตามช่องที่คุณใช้ใน: มี4 ช่องเรื่อย ๆ มี4 สล็อตที่ใช้งานอยู่ แต่ละช่องใช้งานมี2 สล็อตอัพเกรด เราต้องการทราบว่าทักษะที่แตกต่างกันนั้นให้ อย่างไรก็ตามชุดค่าผสมบางชุดมีค่าเทียบเท่า โดยเฉพาะอย่างยิ่งภายในแต่ละกลุ่มของช่องเหล่านั้นตำแหน่งเฉพาะของฟังก์ชั่นไม่สำคัญ ในทางกลับกันเอฟเฟกต์ของฟังก์ชั่นในสล็อตอัพเกรดจะขึ้นอยู่กับฟังก์ชั่นเฉพาะที่ใช้ใน Active Slot แม่ ดังนั้นการใช้เลขฐานสิบหกเพื่อใช้ในฟังก์ชั่นชุดค่าผสมต่อไปนี้จึงเทียบเท่ากันทั้งหมด: Passive Slots: 0 1 2 3 Active Slots: 4 5 6 7 Upgrade Slots: 8 9 A B C D E F Passive Slots: 2 …

13
ไม่มีใครได้โปรด!
1ฉันอย่างเกลียดหลัก ดังนั้นฉันต้องการให้คุณช่วยแปลงตัวเลขเป็น "รูปแบบที่เหมาะสม" ของพวกเขา ตัวเลขในรูปแบบที่เหมาะสมไม่เคยมีสอง1s ในแถว 101ไม่เป็นไร แต่110น่าเกลียด ในการแปลงเพียงข้ามจำนวนที่ไม่เหมาะสมทั้งหมดและนับตามปกติ เช่น ... 1 -> 1 2 -> 2 ... 10 -> 10 11 -> 12 12 -> 13 ... 108 -> 109 109 -> 120 110 -> 121 111 -> 122 และอื่น ๆ โปรแกรมของคุณควรใช้จำนวนเต็มและส่งออกในรูปแบบที่เหมาะสม นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
20 code-golf  number 

17
ค้นหาผลรวมของการเป็นฐานที่เป็นไปได้ทั้งหมด
วัตถุประสงค์ของความท้าทายนี้คือการเขียนโปรแกรมเพื่อแปลงสตริงที่ป้อนเข้าของสิ่งที่สามารถสันนิษฐานได้ว่ามีเพียงตัวอักษรและตัวเลขจากฐานจำนวนมากระหว่าง 2 ถึง 36 เท่าที่จะทำได้และค้นหาผลลัพธ์ 10 ฐาน สายป้อนจะถูกแปลงเป็นฐานทั้งหมดซึ่งในจำนวนนี้จะถูกกำหนดตามตัวอักษรมาตรฐานสำหรับฐานถึง 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ36: ตัวอย่างเช่นอินพุต2Tจะใช้ได้เฉพาะในฐาน 30 ขึ้นไป โปรแกรมจะแปลง 2T จากฐาน 30 ถึง 36 เป็นทศนิยมและรวมผลลัพธ์ คุณอาจจะคิดว่าสายป้อนมีตัวอักษรและตัวเลขเท่านั้น โปรแกรมของคุณอาจใช้ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก สามารถทำได้ แต่ไม่จำเป็นต้องรองรับทั้งสองอย่าง กรณีทดสอบ ตัวอย่างอินพุต: 2T แผนภูมิของฐานที่เป็นไปได้ Base Value 30 89 31 91 32 93 33 95 34 97 35 99 36 101 ผลลัพธ์: 665 ตัวอย่างอินพุต: 1012 แผนภูมิของฐานที่เป็นไปได้: Base Value …

17
ลดความซับซ้อนของไบนารี
ท้าทาย ให้เลขฐานสองเป็นอินพุตโดยใช้วิธีการใดก็ได้ "ลดความซับซ้อน" จำนวนโดยใช้โปรแกรมเต็มรูปแบบหรือฟังก์ชั่น อินพุต [binary] binary เป็นตัวเลขในเลขฐานสองที่มากกว่า 0 เอาท์พุต รับอินพุตแปลงเป็นฐาน 10 โดยไม่ต้องใช้บิวอินจากนั้นถ้าตัวเลขนั้นมีเพียง 1s และ 0s ให้แปลงเป็นตัวเลขฐาน 10 ราวกับว่ามันเป็นเลขฐานสองอื่น ทำซ้ำกระบวนการจนกว่าจะไม่สามารถอ่านตัวเลขในไบนารีและเอาท์พุทตัวเลขนั้น ข้อมูลอื่น ๆ ถ้าใส่คือ 1, 1เอาท์พุทเพียง โปรแกรมของคุณไม่ควรลดความซับซ้อนลง 1 นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดเป็นไบต์ภายในวันอังคาร (17 พฤศจิกายน) เป็นผู้ชนะ หากมีสิ่งใดที่ทำให้เกิดความสับสนแสดงความคิดเห็นโดยระบุสิ่งที่ฉันต้องล้างข้อมูลและฉันจะแก้ไขตามนั้น ไม่อนุญาตให้สร้างสำหรับการแปลงฐาน ตัวอย่าง Input | Output 1 | 1 1010 | 2 1011 | 3 1100100 | 4 1100101 …

1
telgif: figlet ผกผัน
figletเป็นยูทิลิตี้ที่แปลงข้อความธรรมดาเป็นตัวแทน ASCII-art สำหรับใช้ในแบนเนอร์และสิ่งที่คล้ายกัน ตัวอย่างเช่น: $ figlet "CODE GOLF" ____ ___ ____ _____ ____ ___ _ _____ / ___/ _ \| _ \| ____| / ___|/ _ \| | | ___| | | | | | | | | | _| | | _| | | | | | |_ | …

8
เป็นอย่างไรบ้าง?
มาร์ตินได้สร้างตัวอย่างที่ดีที่สามารถใช้ในการติดตามคะแนนสำหรับคำตอบของความท้าทาย มันยอดเยี่ยมและทั้งหมด แต่มันจะดีกว่าไหมถ้าคุณสามารถติดตามมันได้ด้วยตัวเอง? สร้างโปรแกรมที่เปรียบเทียบจำนวนไบต์ด้วยตัวเองกับคำตอบที่เหลือสำหรับคำถามนี้และส่งคืน "ฉันเป็นคำตอบหมายเลข n" กฎ: จำนวนไบต์ในคำตอบของคุณสามารถ hardcoded ในรหัส ฟังก์ชั่นสามารถใช้ url เป็นอินพุตหรือฮาร์ดโค้ดได้ ตัวอักษรสำหรับ url จะไม่นับรวมกับจำนวนไบต์ดังนั้นจึงไม่จำเป็นต้องใช้ตัวย่อ URL ที่อยู่ URL สำหรับคำตอบไม่สามารถฮาร์ดโค้ดได้ คะแนนสำหรับคำตอบสามารถพบได้จากส่วนหัว (เช่นเดียวกับตัวอย่างของ Martin ส่วนหัวคำตอบจะต้องมีรูปแบบที่ถูกต้อง (อธิบายไว้ด้านล่าง) หากเป็นไปได้ที่จะเรียกใช้โปรแกรมออนไลน์โปรดแชร์ลิงก์ไปยังคอมไพเลอร์ออนไลน์ (หรือโค้ดขนาดสั้นที่สามารถเรียกใช้จากคำตอบได้) ถ้ามันเป็นไปไม่ได้โปรดแสดงวิธีการเรียกใช้ฟังก์ชั่นและแสดงผลลัพธ์จากคอมไพเลอร์ของคุณเอง (ในเวลาที่คุณโพสต์คำตอบคุณไม่จำเป็นต้องอัปเดตเว้นแต่คุณต้องการแน่นอน) คุณต้องเปรียบเทียบคำตอบกับคำตอบอื่น ๆ กับคำถามนี้ การเขียนสคริปต์I'm answer number 1.ในบางภาษานั้นไม่ถูกกฎหมาย หากคำตอบอื่น ๆ มีจำนวนไบต์เท่ากับคุณคุณสามารถเลือกได้ว่าต้องการดีที่สุดหรือแย่กว่านั้น จะต้องจัดรูปแบบส่วนหัว: # Language Name, N bytes ไม่สามารถใช้ Strike-through และอื่น ๆ ได้ดังนั้นหากมีการเปลี่ยนแปลงขนาดรหัสให้แสดงเป็นข้อความตัวหนาด้านล่างส่วนหัวหรือระบุด้วยวิธีอื่น …

1
การสร้างภาพ Mazes
ท้าทาย เขียนโปรแกรม / ฟังก์ชั่นที่ยอมรับ "ภาพ" และส่งออกภาพทางคดเคี้ยวที่เกิดขึ้นจากภาพนั้น อินพุต โปรแกรมของคุณควรยอมรับข้อโต้แย้งสองข้อ: ฉันภาพเพื่อสร้างเขาวงกตจาก S เป็นบูลีนที่ระบุว่าจะแสดงโซลูชันให้กับเขาวงกตหรือไม่ ฉันได้รับในรูปแบบต่อไปนี้: ....... .#####. .#####. ####### .#####. .#####. ....... โดยที่#เซลล์คือสิ่งที่จะรวมอยู่ในเส้นทางการแก้ปัญหาและ.เป็นเซลล์ที่จะถูกแยกออก คุณอาจจะสลับออก.'s, #' และการขึ้นบรรทัดใหม่ด้วยตัวอักษรของการเลือกของคุณตราบใดที่พวกเขาแตกต่างจากคนอื่น ๆ หรือคุณอาจยอมรับบิตแมปที่แท้จริงของภาพที่ป้อน เอาท์พุต เขาวงกตที่เกิดขึ้นของคุณควรอยู่ในรูปแบบต่อไปนี้: ############### # # # ### ####### # # #.........# # # #.#######.# # # #.#.......# # ###.#.######### ....#.#........ #####.#.####### # ...#..... # # …

9
การกำจัดรหัสที่ตายแล้ว
รหัสตายอยู่ที่นั่นไม่ทำอะไรเลยจ้องมองที่เรารู้ว่ามันจะไม่ถูกประหารชีวิต ... แต่วันนี้เราสามารถแก้แค้นได้ สเปค อินพุตจะเป็นสตริงหลายบรรทัด แต่ละบรรทัดอย่างใดอย่างหนึ่งอาจจะเป็นที่ได้รับมอบหมายหรือการแสดงออก การมอบหมาย การมอบหมายเป็นรูปแบบ<name> = numberที่ชื่อเป็นลำดับของตัวอักษรขีดล่างและตัวเลข แต่ไม่เริ่มต้นด้วยตัวเลข ตัวแปรอาจถูกกำหนดจำนวนครั้งใดก็ได้ การแสดงออก นิพจน์เป็นของฟอร์ม <var_name OR number> <operation> <var_name OR number> ... นิพจน์อาจเป็นการรวมกันของ: ตัวแปรที่กำหนดไว้แล้ว ตัวดำเนินการทางคณิตศาสตร์พื้นฐาน +-*/ ตัวเลข (จำนวนเต็ม) ผลลัพธ์ที่คาดหวัง คุณควรเอาท์พุทสตริงกับซ้ำซ้อนได้รับมอบหมาย , การมอบหมายงานที่ไม่เคยใช้โดยใด ๆ ของการแสดงออกต่อไปนี้มันออก โปรดทราบว่าการมอบหมายสามารถทำซ้ำซ้อนได้หากทำการมอบหมายเพิ่มเติมให้กับตัวแปรเดียวกันก่อนที่จะดำเนินการนิพจน์โดยใช้ตัวแปรนั้น กรณีทดสอบ ใน a = 10 a * 3 ออก a = 10 a * 3 …

2
การยกเว้นแมนฮัตตันกรณีที่เลวร้ายที่สุด
ลองนึกภาพตารางWโดยHของสี่เหลี่ยมที่ล้อมรอบด้วยวงแหวน รายการจะถูกวางลงบนตารางดังนี้ รายการแรกที่สามารถวางบนตารางใด ๆ แต่รายการที่ตามมาจะต้องไม่เป็นภายในระยะแมนฮัตตัน Rของรายการใด ๆ ก่อนหน้า (ยังเป็นที่รู้จักกันเป็นย่าน Von Neumann ของช่วงR ) การเลือกตำแหน่งอย่างระมัดระวังช่วยให้การติดตั้งรายการจำนวนมากเข้ากับกริดก่อนที่จะไม่มีตำแหน่งที่ถูกต้องอีกต่อไป อย่างไรก็ตามให้พิจารณาถึงเป้าหมายตรงกันข้าม: จำนวนไอเท็มที่ต่ำที่สุดที่สามารถวางและไม่อยู่ในตำแหน่งที่ถูกต้องคืออะไร? นี่คือโซนการยกเว้นรัศมี 5: นี่คือโซนยกเว้นรัศมี 5 อีกครั้งคราวนี้อยู่ใกล้กับขอบเพื่อให้เห็นพฤติกรรมการห่อที่ชัดเจน: อินพุต สามจำนวนเต็ม: W : ความกว้างของกริด (จำนวนเต็มบวก) H : ความสูงของกริด (จำนวนเต็มบวก) R : รัศมีของเขตการยกเว้น (จำนวนเต็มไม่เป็นลบ) เอาท์พุต จำนวนเต็มNซึ่งเป็นจำนวนไอเท็มที่เล็กที่สุดที่สามารถวางเพื่อป้องกันตำแหน่งที่ถูกต้องเพิ่มเติม รายละเอียด รัศมีศูนย์ให้เขตการยกเว้น 1 สี่เหลี่ยมจัตุรัส (หนึ่งรายการที่ถูกวางบน) รัศมีของ N ไม่รวมถึงโซนที่สามารถเข้าถึงได้ในขั้นตอน N orthogonal (จำได้ว่าขอบห่อ toroidally) รหัสของคุณจะต้องใช้กับตัวพิมพ์เล็ก …

17
เครื่องคิดเลขเป็นรายการตัวเลขและตัวดำเนินการ
งานของคุณคือการใช้รายการของอาร์กิวเมนต์ที่เป็นจำนวนเต็มหรือตัวดำเนินการและแยกวิเคราะห์เช่น: มีโอเปอเรเตอร์ปัจจุบันซึ่งเริ่มต้นด้วย + ทุกครั้งที่พบตัวดำเนินการตัวดำเนินการปัจจุบันจะเปลี่ยนไป ตัวดำเนินการที่เป็นไปได้คือ: "+", "-", "*", "/" และ "%" ซึ่งสอดคล้องกับความหมายในภาษา C และภาษาส่วนใหญ่ มีวิธีแก้ปัญหาที่ทำงานอยู่ซึ่งเริ่มต้นที่ 0 ทุกครั้งที่พบจำนวนเต็มโซลูชันจะถูกปรับเปลี่ยนตามจำนวนขึ้นอยู่กับผู้ปฏิบัติงาน เช่นถ้าผู้ประกอบการเป็น "/" ดังนั้นการแก้ปัญหาจะถูกหารด้วยจำนวน หากการดำเนินการจะส่งผลให้ตัวเลขผสม (เช่นมีทศนิยม) แล้วมันจะต้องปูพื้นกลับไปเป็นจำนวนเต็ม (เช่นทศนิยมจะต้องถูกตัดออก) เอาท์พุททางออกสุดท้าย ตัวอย่างเช่น: อาร์กิวเมนต์5 8 25 * 9 6 2 - 104 / 4 7 + 6 % 14จะส่งผลให้: 5 8 25 * 9 6 2 - …
20 code-golf  number 

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