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

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

30
พิมพ์รูทดิจิทัล
สิ่งนี้แตกต่างจากMy Word ที่สามารถเอาชนะ Word ของคุณได้เนื่องจากมีความซับซ้อนน้อยกว่าและต้องการให้คุณคำนวณเท่านั้นและไม่เปรียบเทียบมัน ในการค้นหารูทดิจิทัลใช้ตัวเลขทั้งหมดของตัวเลขเพิ่มและทำซ้ำจนกว่าคุณจะได้รับตัวเลขหนึ่งหลัก ตัวอย่างเช่นถ้าตัวเลขเป็น12345คุณจะต้องเพิ่ม1, 2, 3, 4และได้รับ5 15จากนั้นคุณจะเพิ่ม1และให้คุณ56 งานของคุณ ได้รับจำนวนเต็มN (0 <= N <= 10000) ผ่านSTDINพิมพ์รากดิจิตอลN กรณีทดสอบ 1 -> 1 45 -> 9 341 -> 8 6801 -> 6 59613 -> 6 495106 -> 7 จำไว้ว่านี่คือcode-golfดังนั้นโค้ดที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ

16
(ของ KevinC) ลำดับ DeciDigits รูปสามเหลี่ยม
การป้อนข้อมูล: เป็นจำนวนเต็มบวกn1 <= n <= 25000ซึ่งเป็น เอาท์พุท: ในขั้นตอนนี้เราเริ่มต้นด้วยเลขทศนิยม 1 / n จากนั้นเราก็นำผลรวมของตัวเลขจนถึงหลักที่nหลังเครื่องหมายจุลภาค (ดัชนี 1 รายการ); ตามด้วยผลรวมของตัวเลขจนถึง ( n -1) 'th จากนั้น ( n -2)' th เป็นต้นดำเนินการต่อจนถึงnคือ 1 ผลลัพธ์คือผลรวมของสิ่งเหล่านี้รวมกัน ตัวอย่างเช่น: n = 7 1/7 = 0.1428571428... 7th digit-sum = 1+4+2+8+5+7+1 = 28 6th digit-sum = 1+4+2+8+5+7 = 27 5th digit-sum = …

9
วาดกล่อง ASCII บางกล่อง
รับจำนวนเต็มสองรายการที่ไม่เป็นลบและส่งออกกล่อง ASCII ตามที่กำหนดไว้ด้านล่าง มุมและทางแยกเป็น pluses: +(ASCII-code 43) เส้นแนวตั้งคือแท่ง|(ASCII-code 124) เส้นแนวนอนเป็น minuses -(รหัส ASCII 45) รายการอินพุตแรกระบุจำนวน minuses ระหว่างแต่ละเครื่องหมายบวกในทิศทางแนวนอน รายการอินพุตที่สองระบุจำนวนของแท่งระหว่างแต่ละเครื่องหมายบวกในทิศทางแนวตั้ง ง่ายต่อการอธิบายด้วยตัวอย่างบางส่วน: 0 // No minuses between each + sign 0 // No bars between + signs ++ ++ ------------------ 1 2 // First a single minus, then two minuses 1 2 // …

30
จำนวนเต็มที่มีตัวเลขในช่วงที่เฉพาะเจาะจง
โปรแกรมที่ควรจะใส่หมายเลขที่เริ่มต้นของช่วงและจุดสิ้นสุดของช่วงและเอาท์พุทว่าหลายจำนวนเต็มจำนวนปรากฏขึ้นระหว่างการเริ่มต้นและจุดสิ้นสุดของช่วงรวม อนุญาตทั้งโปรแกรมและฟังก์ชั่น อินพุตตัวอย่าง ตัวอย่างเช่น: //Input example 1 3,1,100 //Input example 2 3 1 100 //Input example 3 3 1 100 //Input example 4 a(3, 1, 100); ตัวอย่างอินพุตทั้งสี่ข้างต้นถูกต้องและทั้งหมดหมายความว่า3เป็นตัวเลขในคำถาม1คือจุดเริ่มต้นของช่วงและ100จุดสิ้นสุดของช่วง และจากนั้นโปรแกรมจะส่งออกกี่ครั้งที่3ปรากฏในช่วงจาก1การรวม100 3ปรากฏในจำนวนเต็ม3, 13, 23, 30, 31, 32, 33, ... , 93รวมจำนวนทั้งสิ้น 19 ครั้ง ดังนั้นโปรแกรมควรเอาท์พุท19เอาท์พุทเพราะนั่นเป็นวิธีที่หลายต่อหลายครั้ง3ที่ปรากฏในช่วงจากไป1100 กฎระเบียบ อนุญาตทั้งโปรแกรมและฟังก์ชั่น ตัวเลขทั้งหมดจะเป็นจำนวนเต็มซึ่งหมายความว่าจะมีไม่ใด ๆfloatหรือdoubles หมายเหตุ: จำนวนที่ต้องการจะอยู่ในช่วง0≤x≤127เสมอ จะไม่มีกรณีที่จะอยู่นอก0≤x≤127ช่วงนี้ ในขณะที่ตัวอย่างแรกกับกรณีที่เป็น33จำนวน3จะถูกนับเป็นปรากฏเพียงครั้งเดียว , …

3
ปัญหาลูป Brainf * ck
ฉันมีปัญหากับไซเบอร์คลับที่ขอให้คุณพิมพ์: ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! ใช้ Brainf ** k ใน 29 ไบต์หรือน้อยกว่าโดยไม่ใช้อักขระ ',' ฉันมีรหัสที่ใช้งานได้: ++++++++++[>++++++>+++++++++<<-]>-->.<[>-.<-] อย่างไรก็ตามการวนซ้ำของฉันยาวเกินไปส่ง 16 ไบต์เกินขีด จำกัด มีวิธีที่มีประสิทธิภาพมากกว่าในการตั้งค่าเซลล์ที่สองและสามเป็น 58 และ 90 เพื่อให้ฉันสามารถรันลูปที่สองของฉันได้หรือไม่? หรือมีวิธีที่ดีกว่าในการทำทั้งหมดนี้ด้วยกันที่ฉันไม่ได้เห็น?

14
การทำลายการสืบค้น
ฉันรู้ว่าคุณเคยคิดเกี่ยวกับการทดลองและความยากลำบากในการประสบความสุขในชีวิตเป็นเว็บพร็อกซี่ สุจริตใครยังไม่ได้? วันนี้คุณได้รับมอบหมายให้ตระหนักถึงเป้าหมายนี้ (อย่างน้อยก็เป็นส่วนหนึ่งของมัน) เว็บไซต์ X ได้รับปริมาณการใช้งานจำนวนมากในแต่ละวันและกำลังมองหา PaaS (เห็นได้ชัดว่านี่หมายถึงพร็อกซีในรูปแบบบริการ) เนื่องจากมีผู้ใช้จำนวนมากที่ยืนยันการส่งผ่านข้อมูลที่ละเอียดอ่อนผ่านพารามิเตอร์การสืบค้น งานของคุณคือการลบพารามิเตอร์เคียวรีใด ๆ และที่สำคัญทั้งหมดออกจากคำขอก่อนที่จะส่งต่อคำขอผ่านไปยังปลายทางดั้งเดิม อินพุต ดีที่เกิดขึ้น URL แบบ HTTP แน่นอนที่เป็นไปตามหลักไวยากรณ์ URI ในRFC3986 มาตรา 3 คุณสามารถสันนิษฐานได้ว่าไม่มีชิ้นส่วน ตัวอย่างรูปแบบย่อที่มีอะไรในวงเล็บเหลี่ยมหมายถึงทางเลือก: http[s]://[user:pass@]host.name.com[:port]/[?param1=value1&param2=value2...] รายการพารามิเตอร์การสืบค้นที่จะถูกลบ เอาท์พุต HTTP URL ที่แก้ไขโดยไม่มีพารามิเตอร์ที่กำหนดในรายการอินพุต ตัวอย่าง http://example.com/ [foo] > http://example.com/ http://example.com/?foo=bar [] > http://example.com/?foo=bar http://example.com/ [] > http://example.com/ http://example.com/?foo=1&bar=2&baz=3 [foo,baz] > http://example.com/?bar=2 http://example.com/?foo=1&bar=2&baz=3 [foo,bar,baz] …
19 code-golf 

13
กำลังดำเนินการเรียงลำดับฟอง
สร้างฟังก์ชั่นหรือโปรแกรมที่รับสองอินพุต: รายการจำนวนเต็มที่จะเรียงลำดับ (น้อยกว่า 20 องค์ประกอบ) จำนวนเต็มบวกNบอกจำนวนการเปรียบเทียบที่คุณควรทำ ฟังก์ชั่นจะหยุดและส่งออกรายการผลลัพธ์ของจำนวนเต็มหลังจากNการเปรียบเทียบ หากรายการถูกเรียงลำดับอย่างสมบูรณ์ก่อนทำการNเปรียบเทียบดังนั้นรายการที่เรียงควรถูกเอาท์พุท ฟองเรียงลำดับขั้นตอนวิธีการเป็นที่รู้จักกันดีและผมคิดว่าคนส่วนใหญ่รู้ว่ามัน รหัสหลอกและภาพเคลื่อนไหวต่อไปนี้ (ทั้งจากบทความ Wikipedia ที่เชื่อมโยง) ควรให้รายละเอียดที่จำเป็น: procedure bubbleSort( A : list of sortable items ) n = length(A) repeat swapped = false for i = 1 to n-1 inclusive do /* if this pair is out of order */ if A[i-1] > …

11
คำถามของคุณคืออะไร
บทนำ เมื่อคุณได้รับข้อความที่น่าเบื่อคุณเพียงแค่ต้องการเอาชนะให้เร็วที่สุด ลองสังเกตข้อความต่อไปนี้: Ens colligi timenda etc priorem judicem. De quascunque ii at contingere repugnaret explicetur intellectu. Adjuvetis hoc fortassis suspicari opportune obversari vix eam? Dei praemia prudens hominum iii constet requiri haberem. Ima sane nemo modi fuit lus pro dem haud. Vestro age negare tactum hoc cui lor. Ne …

4
แปลง Expression เป็น Panfix Notation
ฉันถูกเรียกดู esolangs และ chanced เมื่อภาษานี้: https://github.com/catseye/Quylthulg สิ่งหนึ่งที่น่าสนใจเกี่ยวกับภาษานี้คือมันไม่ได้ใช้คำนำหน้า postfix หรือมัดมันใช้ทั้งสามคนเรียกมันว่า "panfix" สัญกรณ์ นี่คือตัวอย่าง เพื่อเป็นตัวแทนของมัดปกติ1+2ใน panfix +1+2+มันจะกลายเป็น: สังเกตว่าผู้ประกอบการมีทั้งก่อนระหว่างและหลังตัวถูกดำเนินการ (1+2)*3อีกตัวอย่างหนึ่งคือ *+1+2+*3*นี้จะกลายเป็น แจ้งให้ทราบอีกครั้งว่า*มีอยู่ในทุกสามสถานที่ที่เกี่ยวกับการถูกดำเนินและ+1+2+3 ความท้าทาย ดังที่คุณอาจเดาได้งานของคุณในการท้าทายนี้คือการแปลงนิพจน์จากมัดเป็น Panfix คำอธิบายบางอย่าง: คุณต้องจัดการกับการดำเนินงานพื้นฐานสี่ประการเท่านั้น: +-*/ คุณไม่จำเป็นต้องจัดการกับไบนารีรุ่นเดียวเท่านั้น คุณต้องจัดการกับวงเล็บ สมมติว่ากฎที่มีมาก่อนเป็นปกติจาก*/นั้น+-และปล่อยให้การเชื่อมโยงสำหรับพวกเขาทั้งหมด ตัวเลขจะเป็นจำนวนเต็มไม่ใช่ค่าลบ คุณสามารถเลือกที่จะมีช่องว่างทั้งอินพุตและเอาต์พุต กรณีทดสอบ 1+2 -> +1+2+ 1+2+3 -> ++1+2++3+ (1+2)*3 -> *+1+2+*3* 10/2*5 -> */10/2/*5* (5+3)*((9+18)/4-1) -> *+5+3+*-/+9+18+/4/-1-* นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ!

16
ไฮไลต์กล่อง Bounding ตอนที่ 1: ตารางคาร์ทีเซียน
คุณได้รับตารางสี่เหลี่ยมของตัวละคร.และ#เช่นนี้ .......... ..#....... ....#..#.. ...#...... .......... งานของคุณคือเติมช่องว่างที่จัดเรียงตามแนวแกนของกล่อง#ด้วย#: .......... ..######.. ..######.. ..######.. .......... #แกนชิดกรอบเป็นรูปสี่เหลี่ยมผืนผ้าขนาดเล็กที่สุดที่มีทั้งหมด ต้องการมากขึ้น? ลอง Part II! กฎระเบียบ คุณอาจจะใช้ทั้งสองแตกต่างกันตัวอักขระ ASCII (0x20 เพื่อ 0x7E รวม) ในสถานที่และ# .ฉันจะอ้างถึงพวกเขาเป็น#และ.สำหรับส่วนที่เหลือของข้อกำหนดแม้ว่า อินพุตและเอาต์พุตอาจเป็นสตริงที่คั่นด้วยบรรทัดเดียวหรือรายการสตริง (หนึ่งสำหรับแต่ละบรรทัด) แต่รูปแบบต้องสอดคล้องกัน คุณอาจสมมติว่าอินพุตมีอย่างน้อยหนึ่ง#บรรทัดและทุกบรรทัดมีความยาวเท่ากัน คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและใช้วิธีการมาตรฐานของเราในการรับอินพุตและให้เอาต์พุต คุณอาจใช้ภาษาการเขียนโปรแกรมใด ๆแต่โปรดทราบว่าช่องโหว่เหล่านี้เป็นสิ่งต้องห้ามตามค่าเริ่มต้น นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง - วัดเป็นไบต์ - ชนะ กรณีทดสอบ กรณีทดสอบแต่ละชุดมีอินพุตและเอาต์พุตอยู่ติดกัน # # ... ... #.. #.. ... ... ... ... …

14
การคำนวณสารบบ
สำหรับความท้าทายนี้คุณจะได้รับเส้นทางที่แน่นอนและเส้นทาง "ใหม่" (ซึ่งอาจเป็นแบบสัมบูรณ์หรือแบบสัมพัทธ์) และคุณต้องกลับเส้นทางสุดท้าย ตัวอย่างเช่นหากไดเรกทอรีปัจจุบันของคุณคือ/var/tmp/test: my_dirหรือmy_dir/ ควรกลับมา/var/tmp/test/my_dir ../../my_dir ควรกลับมา /var/my_dir /my_dir/./ ควรกลับมา /my_dir ../../../../../ ควรกลับมา / หากต้องการความคล่องแคล่วมากขึ้น: ไดเรกทอรีเป็นสตริงที่ไม่ว่างเปล่าประกอบด้วยตัวอักษรและตัวเลขและสัญลักษณ์-, _หรือ. เส้นทางนี้เป็นรายการของ 0 หรือมากกว่าไดเรกทอรี/แยกโดยใช้ พา ธ สัมบูรณ์เริ่มต้นด้วย a /, พา ธ สัมพัทธ์ไม่ /เส้นทางอาจรวมถึงตอนจบ คุณต้อง "แก้ไข" เส้นทางที่สองให้เส้นทางแรก กระบวนการแก้ไขคือ: ทดสอบว่าเส้นทางที่สองสัมพันธ์หรือไม่ ถ้าเป็นเช่นนั้นให้ใส่ไดเรกทอรีของเส้นทางที่แน่นอนไปยังจุดเริ่มต้นของเส้นทางที่สอง หากมีไดเรกทอรีใด ๆ ให้..ลบออกและไดเรกทอรีก่อนหน้า หากเป็นไดเรกทอรีแรกให้ลบออก หากมีไดเรกทอรีใด ๆ ให้.ลบออก เอาต์พุตพา ธ สัมบูรณ์สุดท้าย /คุณไม่ควรออกสิ้นสุด คุณไม่จำเป็นต้องจัดการกับอินพุตที่ไม่ถูกต้อง คำสั่งควรใช้งานได้ไม่ว่าจะมีไดเรกทอรีที่ส่งผ่านอยู่จริงในเครื่องของคุณหรือไม่ …

5
สร้างสกรีนเซฟเวอร์ Windows ME ใหม่เป็น ASCII
ความท้าทายนี้ได้รับแรงบันดาลใจจากคำตอบนี้ที่ Ask Ubuntu Stack Exchange Intro จำหน้าจอ Windows ME ด้วยไพพ์หรือไม่? ถึงเวลานำความคิดถึงกลับมาแล้ว! ท้าทาย คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่จะแสดงผลเป็นตัวแทน ASCII ของสกรีนเซฟเวอร์ ในสกรีนเซฟเวอร์ควรมีท่อเดียวซึ่งจะเติบโตในทิศทางกึ่งสุ่ม จุดเริ่มต้นของท่อจะถูกวางแบบสุ่มที่ขอบใด ๆ ของหน้าจอและชิ้นส่วนท่อควรตั้งฉากกับเส้นขอบ (มุมแรก - ท่อสามารถเป็นแนวนอนหรือแนวตั้ง) แต่ละเห็บท่อจะเติบโตในทิศทางที่หันหน้าไปทาง (แนวนอน / แนวตั้ง) ที่80%บังเอิญหรือมีมุมที่มี20%โอกาส ตัวแทนท่อ ในการสร้างไปป์จะใช้อักขระ Unicode 6 ตัว ─ \u2500 horizontal pipe │ \u2502 vertical pipe ┌ \u250C upper left corner pipe ┐ \u2510 upper right …

18
เรียงลำดับเดือนของปี
เขียนฟังก์ชั่นหรือโปรแกรมที่ใช้ปัจจัยการผลิตสายเต็มสะกดชื่อภาษาอังกฤษเดือนในกรณีที่ชื่อเรื่อง: January, February, Marchฯลฯ (null / CR / LF ยกเลิกตกลงคั่นด้วยกับบางส่วนของตัวละครที่ไม่ใช่อัลฟาดังนั้นหากคุณเลือก) และทั้ง เปรียบเทียบสองอินพุตคืนค่าจริงถ้าอินพุทที่สองมากกว่า (เรียงตามลำดับเดือน) มากกว่าอินพุทแรก ค่าที่เท่ากันส่งผลให้ค่า Falsey หรือเรียงลำดับตามลำดับ (รายการ, สตริงที่คั่น, ฯลฯ ) ของลำดับตามลำดับเวลา (ปมของความท้าทายคือการกำหนดวิธีการ / การแสดงออกที่ให้เรียงลำดับพจนานุกรมที่ถูกต้องบางภาษาอาจมีคำตอบที่สั้นกว่ากับหนึ่งหรืออื่น ๆ ) คุณไม่สามารถใช้วิธีการแยกวิเคราะห์ภายในเวลาใดก็ได้ (เช่นstrptime) เพื่อแปลชื่อเดือนเป็นตัวเลขหรือการทำแผนที่กระป๋องของชื่อเดือน ใช้คุณสมบัติของสตริงเองตารางการค้นหาที่คุณกำหนดหรือสิ่งที่ฉลาด ตัวอย่าง ตัวอย่างการใช้งานแม้ว่ากฎข้อแรกจะถูกห้ามใช้ ... import datetime def is_later_month(a, b): ''' Example of prohibited code because it relies on language features …

30
สลับอาเรย์บูลีน
คนเรียบง่ายดี อินพุต รับอาเรย์บูลีน (หรือทางเลือกที่ยอมรับได้) คุณสามารถสันนิษฐานได้ว่าอาเรย์จะไม่ยาวเกิน 32 องค์ประกอบ [false, false, true, false, false] เอาท์พุต ย้อนกลับทุกองค์ประกอบของอาร์เรย์และส่งออกมัน [true, true, false, true, true] กฎระเบียบ คุณสามารถเขียนโปรแกรมเต็มหรือเพียงแค่ฟังก์ชั่น ช่องโหว่มาตรฐานใช้ รหัสที่สั้นที่สุดเป็นไบต์ต่อภาษาชนะ! กรณีทดสอบ Input: [true, false] Output: [false, true] Input: //Example of acceptable alternative [0,1,1] Output: [1,0,0]

4
กำหนดผู้ชนะของเกมแห่งสงคราม
เกมไพ่สงครามเป็นที่น่าสนใจว่าผลลัพธ์สุดท้ายจะถูกกำหนดโดยการเริ่มต้นของเด็คตราบใดที่กฎบางอย่างมีการปฏิบัติตามลำดับที่ไพ่ถูกหยิบขึ้นมาจากสนามเด็กเล่นและย้ายไปที่เด็ค ในความท้าทายนี้จะมีผู้เล่นเพียง 2 คนทำให้สิ่งต่าง ๆ ง่ายขึ้นอย่างมาก เกม ผู้เล่นแต่ละคนจะได้รับไพ่ 26 ใบ ผู้เล่นแต่ละคนวางไพ่บนสุดในหน้าหงายหน้า ผู้เล่นที่มีไพ่อันดับสูงกว่า ( Ace > King > Queen > Jack > 10 > 9 > 8 > 7 > 6 > 5 > 4 > 3 > 2) ชนะรอบและวางไพ่ไว้ที่ด้านบนของการ์ดของคู่ต่อสู้พลิกพวกเขาและเพิ่มพวกเขาที่ด้านล่างของสำรับ (ดังนั้นไพ่ที่ชนะจะอยู่ที่ด้านล่างของสำรับ และการ์ดที่แพ้ของผู้เล่นคนอื่นจะอยู่เหนือการ์ดนั้น) สิ่งนี้จะทำจนกว่าผู้เล่นคนหนึ่งจะหมดไพ่ หากไพ่อยู่ในอันดับที่เท่ากันผู้เล่นแต่ละคนจะวางไพ่ 2 ใบบนสุดของไพ่หงายหน้าขึ้นด้านบนของไพ่ใบที่แล้ว (เพื่อให้ไพ่ที่อยู่ด้านบนของสำรับเป็นไพ่ใบที่สองในกองซ้อนและ การ์ดที่ถูกรองจากด้านบนอยู่ด้านบน) จากนั้นอันดับ (ของการ์ดอันดับสูงสุดของแต่ละสแต็ค) จะถูกนำมาเปรียบเทียบอีกครั้งและผู้ชนะจะวางสแต็คทั้งหมดไว้ที่ด้านบนของสแต็กทั้งหมดของผู้แพ้เปลี่ยนสแต็กคว่ำลงและวางไว้ที่ด้านล่าง …

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