บทสัมภาษณ์: The Front Nine
นี่เป็นครั้งแรกของความท้าทายที่ได้รับแรงบันดาลใจจากคำถามการสัมภาษณ์งาน
คุณเดินเข้าไปในสำนักงานที่เจ้านายในอนาคตของคุณนั่งอยู่ “ เข้ามาแล้วนั่งลง” เขาพูด คุณนั่งลงอย่างหงุดหงิดเพื่อให้แน่ใจว่าชุดที่เร็วและเป็นมืออาชีพของคุณปราศจากริ้วรอย เขาถามคำถามคุณมากมายเกี่ยวกับการศึกษาประสบการณ์การทำงานก่อนหน้าและอื่น ๆ คุณตอบคำถามเหล่านี้เป็นส่วนใหญ่อย่างซื่อสัตย์เพิ่มการจัดแต่งเล็กน้อยที่นี่และที่นั่นเพื่อทำให้ตัวเองเสียงดีขึ้น เขาโน้มตัวไปข้างหน้าและเริ่มพูดอีกครั้ง
"คุณเคยได้ยินชื่อของการเล่นกอล์ฟ?" ทำไมใช่คุณชอบที่จะตีกอล์ฟและทำมันบ่อยๆในเวลาว่างของคุณ "เยี่ยมมากส่วนสุดท้ายของการสัมภาษณ์คือการตรวจสอบทางเทคนิคคุณจะได้รับมอบหมายให้เขียนโค้ดเพื่อแก้ปัญหาต่าง ๆ ... " เขาส่งกระดาษให้คุณ คุณรีบเหลียวมองมัน peasy ง่าย ๆ ตอนนี้เขาถามเกี่ยวกับการเล่นกอล์ฟทำไม
"คุณจะได้รับคะแนนตามขนาดรวมของการแก้ปัญหาเหล่านี้หากคุณสามารถให้คะแนนต่ำกว่าผู้สมัครคนอื่น ๆ งานของคุณจะเป็นของคุณ" โอ้ "เหมือนกอล์ฟมีปัญหา 18 ข้อแบ่งออกเป็นสองชุด 9. คุณสามารถใช้ภาษาใดก็ได้ที่คุณต้องการแก้ปัญหาเรามีนักแปลและนักแปลสำหรับทุกภาษาที่คุณได้ยินและแน่นอนว่าคุณมี โชคดี! "
งาน
ภารกิจที่ 1: ตารางสูตรคูณ
รับจำนวนเป็นนำเข้าส่งออกตารางการคูณสำหรับจำนวนเต็มบวกในช่วงn
จะอยู่ในช่วง ตัวเลขทั้งหมดควรจัดชิดซ้ายในตาราง ใช้อักขระสำหรับมุมซ้ายบน[1, n]
n
[1, 12]
x
ตัวอย่าง:
n=4
x 1 2 3 4
1 1 2 3 4
2 2 4 6 8
3 3 6 9 12
4 4 8 12 16
n=10
x 1 2 3 4 5 6 7 8 9 10
1 1 2 3 4 5 6 7 8 9 10
2 2 4 6 8 10 12 14 16 18 20
3 3 6 9 12 15 18 21 24 27 30
4 4 8 12 16 20 24 28 32 36 40
5 5 10 15 20 25 30 35 40 45 50
6 6 12 18 24 30 36 42 48 54 60
7 7 14 21 28 35 42 49 56 63 70
8 8 16 24 32 40 48 56 64 72 80
9 9 18 27 36 45 54 63 72 81 90
10 10 20 30 40 50 60 70 80 90 100
ภารกิจ 2: ลำดับ RMS
รับสตริงอักขระ ASCII ส่งออกค่าเฉลี่ยรากเฉลี่ยกำลังสองของเลข ASCII ของพวกเขา สตริงจะไม่มีไบต์เป็น NULL (ลำดับ 0)
ตัวอย่าง:
Input: The Interview: The Front Nine
Output: 95.08290393488019
Input: `1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
Output: 91.38101204135423
ภารกิจ 3: Projectile Motion
เมื่อให้ความเร็วและมุมเริ่มต้นกับขอบฟ้าของกระสุนปืนที่ยิงจากระดับพื้นดินให้ส่งออกระยะทางแนวนอนที่มันจะเดินทางก่อนที่จะลงจอด ความเร็วเริ่มต้นจะได้รับในหน่วยเมตรต่อวินาทีมุมจะได้รับในองศาและระยะทางจะเป็นเมตร สมมติว่าแรงโน้มถ่วงของโลก ( g=9.81 m/s/s
) และไม่สนใจผลกระทบเชิงสัมพันธ์ เพื่อประโยชน์ของปัญหานี้คุณอาจสมมติว่าโลกแบน (คุณไม่จำเป็นต้องพิจารณาความโค้งของโลกเมื่อทำการคำนวณ) [0, 90]
มุมที่กำหนดจะอยู่ในช่วง คำตอบของคุณควรแม่นยำในตำแหน่งทศนิยมอย่างน้อยสองตำแหน่ง (อนุญาตให้ปัดเศษได้)
ตัวอย่าง:
velocity=50, angle=45
Result: 254.84 (rounded)
velocity=10, angle=60
Result: 8.82798576742547
ภารกิจที่ 4: etaoin shrdlu
กำหนดสตริงของอักขระ ASCII ที่พิมพ์ไม่เป็นโมฆะ (ปกติในช่วง[32,127]
) ส่งออกสตริงพร้อมอักขระเรียงตามความถี่ในลำดับจากมากไปน้อย ในกรณีของเน็คไทให้เรียงตามลำดับ ASCII ขึ้นไป
ตัวอย่าง:
Input: "Hello, World!"
Output: "llloo !,HWder"
Input: "Programming Puzzles and Code Golf"
Output: " oooPPaaddeeggllmmnnrrzzCGfisu"
ภารกิจที่ 5: ดัชนี Fibonacci
กำหนดตัวเลขให้ตรวจสอบว่าเป็นหมายเลข Fibonacci หรือไม่และส่งออกดัชนีของมัน (เริ่มจาก 1) ตามลำดับ ถ้าไม่ใช่หมายเลขฟีโบนักชีเอาท์พุท 0 ในกรณีที่ 1 ซึ่งอยู่ในลำดับที่สองให้ส่งออกเหตุการณ์ที่เกิดขึ้นเร็วที่สุด (ดัชนี 1)
ตัวอย่าง:
Input: 1
Output: 1
Input: 144
Output: 12
Input: 4
Output: 0
ภารกิจที่ 6: แอนนาแกรม
ให้สามสตริงตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก ( [a-z]
) ส่งออกสตริงที่ใช้ตัวอักษรทั้งหมดในสตริงแรกเริ่มต้นด้วยสตริงที่สองและลงท้ายด้วยสตริงที่สาม หากไม่สามารถสร้างสตริงดังกล่าวให้ส่งออกสตริงว่าง สตริงอินพุตจะมีความยาวอย่างน้อยหนึ่งตัวอักษร "middle" ของสตริงเอาต์พุต (ระหว่างคำนำหน้าและสตริง postfix) อาจว่างเปล่าหากคำนำหน้าและสตริง postfix ร่วมกันใช้ตัวอักษรทั้งหมดในสตริงแหล่งที่มา
ตัวอย่าง:
Input: geobits bi es
Possible output: bigtoes
Input: mariatidaltug digital trauma
Output: digitaltrauma
Input: mego go lf
Output: (empty string)
ภารกิจที่ 7: เติมลงในช่องว่าง
กำหนดรายการของสตริงและอักขระเติมผลลัพธ์ของการเติมเต็มสตริงทั้งหมดตามความยาวของสตริงที่ยาวที่สุดด้วยอักขระเติมเรียงตามลำดับจากน้อยไปมากตามความยาวดั้งเดิมของสตริงรักษาลำดับเดิมในกรณี ของเน็คไท คุณควรจะสามารถจัดการรายการความยาวอัน จำกัด ใด ๆ ที่มีสตริงของความยาวอัน จำกัด ใด ๆ ที่ล้อมรอบด้วยข้อ จำกัด ของหน่วยความจำ
ตัวอย่าง:
Input: ["hello","world","this","is","a","test"], 'x'
Output: ["axxxx","isxxx","thisx","testx","hello","world"]
Input: ["I'm","a","lumberjack","and","I'm","okay"], '!'
Output: ["a!!!!!!!!!","I'm!!!!!!!","and!!!!!!!","I'm!!!!!!!","okay!!!!!!","lumberjack"]
ภารกิจที่ 8: การเปลี่ยนแปลง
กำหนดตัวเลขในช่วง[0.01,0.99]
เอาท์พุทจำนวนของเหรียญสหรัฐมาตรฐาน 4 เหรียญที่ควรใช้เพื่อเป็นตัวแทนของค่านี้โดยที่จำนวนเหรียญทั้งหมดจะถูกย่อให้เล็กสุด อินพุตจะมีตำแหน่งอยู่หลังจุดทศนิยม 2 ตำแหน่งเสมอ
การอ้างอิงค่าเหรียญ:
Penny: 0.01, Nickel: 0.05, Dime: 0.10, Quarter: 0.25
ตัวอย่าง:
Input: 0.75
Output: [0,0,0,3]
Input: 0.23
Output: 3 pennies, 0 nickels, 2 dimes, 0 quarters
ภารกิจที่ 9: การรวมช่วง
รับรายการ จำกัด ของ 2-tuples ที่มีจำนวนเต็มที่เป็นตัวแทนช่วงส่งออกผลลัพธ์ของการรวมช่วงที่ทับซ้อนกันหรือช่วงที่อยู่ติดกันทั้งหมด ช่วงทั้งหมดจะต้องมีความยาวอย่างน้อย 1 และค่าเริ่มต้นจะน้อยกว่าค่าสิ้นสุดเสมอ ลำดับของเอาต์พุตไม่สำคัญ
ตัวอย่าง:
Input: (2,3), (4,5), (6,9), (0,7)
Output: (0,9)
Input: (-3,4), (2,5), (-10,-4)
Output (-10,-4), (-3,5)
Input: (2,3), (5,6), (6,8)
Output: (5,8), (2,3)
กฎระเบียบ
- นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ
- คะแนนของคุณจะเป็นผลรวมของจำนวนไบต์สำหรับการแก้ปัญหาทั้งหมดของคุณ
- ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
- อินพุตและเอาต์พุตอาจดำเนินการในลักษณะใดก็ตามที่ถือว่าเป็นมาตรฐานสำหรับภาษาของคุณ
- คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบสำหรับแต่ละความท้าทายและอาจแลกเปลี่ยนระหว่างทั้งสองข้ามความท้าทาย
- คุณต้องใช้ภาษาเดียวกันสำหรับความท้าทายทั้งหมด หากความแตกต่างของรุ่นมีความสำคัญเพียงพอสำหรับพวกเขาโดยทั่วไปถือว่าเป็นรายการแยกต่างหากในความท้าทายคุณต้องใช้เวอร์ชันเดียวกันตลอด ตัวอย่างเช่นถ้าคุณใช้ Python คุณต้องใช้ Python 2 หรือ Python 3 สำหรับความท้าทายทั้งหมด
- คุณต้องแก้ปัญหาทั้งหมด คำตอบที่แก้ปัญหาความท้าทายบางอย่างเท่านั้นจะถูกพิจารณาว่าไม่ใช่การแข่งขัน
- คุณสามารถใช้ภาษาในตัวหรือไลบรารีมาตรฐาน
ลีดเดอร์บอร์ด
สแต็คส่วนย่อยที่ด้านล่างของโพสต์นี้สร้างกระดานแต้มนำจากคำตอบ a) เป็นรายการคำตอบสั้นที่สุดต่อภาษาและ b) เป็นกระดานแต้มนำโดยรวม
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:
## Language Name, N bytes
ที่N
มีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัว ตัวอย่างเช่น
## Ruby, <s>104</s> <s>101</s> 96 bytes
หากคุณต้องการรวมหลายตัวเลขไว้ในส่วนหัวของคุณ (เช่นเนื่องจากคะแนนของคุณคือผลรวมของไฟล์สองไฟล์หรือคุณต้องการแสดงรายการบทลงโทษการตั้งค่าสถานะของล่ามแยกต่างหาก) ตรวจสอบให้แน่ใจว่าคะแนนจริงเป็นตัวเลขสุดท้ายในส่วนหัว:
## Perl, 43 + 2 (-p flag) = 45 bytes
คุณยังสามารถตั้งชื่อภาษาให้เป็นลิงค์ซึ่งจะปรากฏในตัวอย่างข้อมูล:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes