साक्षात्कार: द फ्रंट नाइन


18

साक्षात्कार: द फ्रंट नाइन

यह प्रोग्रामिंग जॉब इंटरव्यू प्रश्नों से प्रेरित चुनौतियों की एक श्रृंखला है।

आप उस कार्यालय में चलते हैं जहां आपका संभावित भविष्य बॉस बैठता है। "अंदर आओ और बैठो", वे कहते हैं। आप घबराकर बैठ जाते हैं, यह सुनिश्चित कर लेते हैं कि आपका तेज़ अभी तक पेशेवर पोशाक झुर्रियों से मुक्त है। वह आपसे आपकी शिक्षा, पिछले कार्य अनुभवों, आदि के बारे में कई सवाल पूछता है। आप उन्हें ज्यादातर ईमानदारी से जवाब देते हैं, यहां और वहां थोड़ा अलंकरण जोड़कर खुद को बेहतर बनाने के लिए। वह आगे झुक जाता है और फिर से बोलना शुरू कर देता है।

"क्या आपने कभी कोड गोल्फिंग के बारे में सुना है?" क्यों, हाँ, आप गोल्फ कोड से प्यार करते हैं, और इसे अपने खाली समय में अक्सर करते हैं। "महान। साक्षात्कार का अंतिम भाग एक तकनीकी परीक्षा है। आपको समस्याओं की एक श्रृंखला को हल करने के लिए कोड लिखने के साथ काम सौंपा जाएगा ..." वह आपको कागज की एक शीट सौंपता है। आप जल्दी से उस पर नज़र डालें। बहुत आसान। अब उन्होंने कोड गोल्फिंग के बारे में क्यों पूछा?

"आपको इन समस्याओं के समाधान के कुल आकार के आधार पर वर्गीकृत किया जाएगा। यदि आप अन्य सभी उम्मीदवारों की तुलना में कम स्कोर कर सकते हैं, तो नौकरी आपकी है।" ओह। "गोल्फ की तरह, 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: साधारण आरएमएस

ASCII वर्णों की एक स्ट्रिंग को देखते हुए, अपने ASCII अध्यादेशों के रूट-मीन-स्क्वायर औसत का उत्पादन करते हैं । स्ट्रिंग में कभी भी NULL बाइट नहीं होगी (क्रमांक 0)।

उदाहरण:

Input: The Interview: The Front Nine
Output: 95.08290393488019

Input: `1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
Output: 91.38101204135423

कार्य 3: प्रक्षेप्य गति

जमीन के स्तर से निकाल दिए गए प्रक्षेप्य के क्षितिज के साथ प्रारंभिक वेग और कोण को देखते हुए, क्षैतिज दूरी को आउटपुट करता है जो लैंडिंग से पहले यात्रा करेगा। प्रारंभिक वेग मीटर प्रति सेकंड में दिया जाएगा, कोण डिग्री में दिया जाएगा, और दूरी मीटर में होगी। पृथ्वी के गुरुत्वाकर्षण को मानें ( 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: फाइबोनैचि सूचकांक

एक संख्या को देखते हुए, यह निर्धारित करें कि क्या यह एक फाइबोनैचि संख्या है, और यदि यह है, तो अनुक्रम में इसका सूचकांक (1 से शुरू) आउटपुट करें। यदि यह फाइबोनैचि संख्या नहीं है, तो आउटपुट 0. 1 के मामले में, जो दो बार अनुक्रम में है, जल्द से जल्द घटना (इंडेक्स 1) का उत्पादन करता है।

उदाहरण:

Input: 1
Output: 1

Input: 144
Output: 12

Input: 4
Output: 0

टास्क 6: एनाग्रम्स

लोअरकेस अंग्रेजी अक्षरों के तीन स्ट्रिंग्स को देखते हुए ( [a-z]), एक स्ट्रिंग को आउटपुट करता है जो पहली स्ट्रिंग में सभी अक्षरों का उपयोग करता है, दूसरे स्ट्रिंग से शुरू होता है, और तीसरे स्ट्रिंग के साथ समाप्त होता है। यदि ऐसी स्ट्रिंग का निर्माण नहीं किया जा सकता है, तो एक रिक्त स्ट्रिंग का उत्पादन करें। इनपुट तार हमेशा कम से कम एक अक्षर लंबा होगा। आउटपुट स्ट्रिंग (प्रीफिक्स और पोस्टफ़िक्स स्ट्रिंग के बीच) का "मध्य" खाली हो सकता है, यदि प्रीफ़िक्स और पोस्टफ़िक्स स्ट्रिंग एक साथ स्रोत स्ट्रिंग के सभी अक्षरों का उपयोग करते हैं।

उदाहरण:

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-ट्यूपल की एक सीमित सूची को देखते हुए पूर्णांक जो कि श्रेणियों का प्रतिनिधित्व करते हैं, सभी अतिव्यापी या आसन्न श्रेणियों के विलय का परिणाम है। सभी रेंज कम से कम 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)

नियम

  • यह , इसलिए सबसे छोटा उत्तर (बाइट्स में) जीतता है।
  • आपका स्कोर आपके सभी समाधानों के लिए बाइट काउंट का योग होगा।
  • मानक खामियों को मना किया जाता है।
  • इनपुट और आउटपुट आपकी भाषा के लिए मानक माना जाता है।
  • आप प्रत्येक चुनौती के लिए पूर्ण कार्यक्रम या कार्य लिख सकते हैं, और दोनों चुनौतियों के बीच आदान-प्रदान कर सकते हैं।
  • आपको सभी चुनौतियों के लिए एक ही भाषा का उपयोग करना चाहिए। यदि संस्करण अंतर उनके लिए पर्याप्त रूप से महत्वपूर्ण हैं, तो आमतौर पर चुनौतियों में अलग-अलग प्रविष्टियों को माना जाता है, तो आपको पूरे संस्करण में एक ही संस्करण का उपयोग करना चाहिए। उदाहरण के लिए, यदि आप पायथन का उपयोग करते हैं, तो आपको सभी चुनौतियों के लिए पायथन 2 या पायथन 3 का उपयोग करना चाहिए।
  • आपको सभी चुनौतियों का समाधान करना चाहिए। उत्तर जो केवल कुछ चुनौतियों को हल करते हैं उन्हें गैर-प्रतिस्पर्धी माना जाएगा।
  • आप भाषा के निर्माण या मानक पुस्तकालयों का उपयोग कर सकते हैं।

लीडरबोर्ड

इस पोस्ट के निचले हिस्से में स्टैक स्निपेट उत्तर से लीडरबोर्ड उत्पन्न करता है) ए प्रति भाषा में सबसे छोटे समाधान की सूची के रूप में और बी) एक समग्र लीडरबोर्ड के रूप में।

यह सुनिश्चित करने के लिए कि आपका उत्तर दिख रहा है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:

## 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


क्या हमें कार्य 1 में वैज्ञानिक संकेतन में आउटपुट संख्या की अनुमति है?
FUZxxl

1
हालाँकि मुझे ऐसा साक्षात्कार पसंद आएगा, मुझे संदेह है अगर यह लोगों को अच्छी तरह से रैंक करता है। एह, जो भी हो। अभी भी मजेदार है
गर्वित हैकेलर

क्या हमें परिणाम प्रिंट करने हैं या क्या हम उन्हें कार्यों से वापस कर सकते हैं? यदि उत्तरार्द्ध अनुमेय है, तो कार्य 1 के लिए हम एक मैट्रिक्स या समान वापस कर सकते हैं?
एलेक्स ए।

टास्क 8 में लगता है कि 2 आउटपुट फॉर्मेट हैं, क्या हम सिर्फ पहले वाले का उपयोग कर सकते हैं?
aditsu

1
@pppery, यह प्रश्न आपके द्वारा दिए गए लिंक से पुराना है, इसलिए मुझे नहीं लगता कि यह इस प्रश्न पर लागू होता है।
Night2

जवाबों:


8

पायथ, 155 153 149 142 142 141 131 130 बाइट्स

4 बाइट्स @FryAmTheEggman को धन्यवाद

1, 5 और 4 बाइट्स @ जेक्यूब के लिए धन्यवाद

  1. 24 बाइट्स :J+1SQp\xtjmsm.[`*dk\ 4JJ

सूची से गुणन तालिका का निर्माण करें [1, 1, 2, 3, ...], जो कि है +1SQ, फिर एक प्रिंट करें xऔर उसके पहले चरित्र को हटा दें।

  1. 10 बाइट्स :@.Om^Cd2z2

सीधा।

  1. 18 बाइट्स :c*.t.tyvw7Z*QQ9.81

सूत्र का उपयोग करता है sin(2 theta) * v^2/a, जहां thetaकोण vहै, प्रारंभिक वेग है और aहै9.81

  1. 7 बाइट्स :o_/zNSz

सीधा।

  1. 15 बाइट्स :hxeM.u,eNsNQU2Q

फ़ॉरेस्ट पेयर जोड़े बनाएं, उनमें इनपुट का इंडेक्स ढूंढें, एक जोड़ें।

  1. 14 बाइट्स :IqSzSJj.-zsQQJ

शब्द से उपसर्ग और प्रत्यय को हटाने के लिए बैग वाइज घटाव का उपयोग करें, फिर शेष शब्द को बीच में रखें। यदि इसका परिणाम इनपुट का क्रमचय नहीं है, तो इसे प्रिंट न करें।

  1. 8 बाइट्स :C.tolNQz

लंबाई के आधार पर छाँटें। भरा हुआ स्थानान्तरण। फिर से संक्रमण।

  1. 18 बाइट्स :Jsttz/L~%Jd[25T5 1

आउटपुट सिक्का मायने रखता है [quarters, dimes, nickels, pennies]

इनपुट के पहले 2 अक्षर निकालें और सेंट प्राप्त करने के लिए इंट कास्ट करें। बचाने के लिए Jdसूची में प्रत्येक संख्या के लिए [25, 10, 5, 1], बाद में असाइन J%dकरें J, /Jdके मूल मान के साथ मान उत्पन्न करें J। प्रिंट।

  1. 16 बाइट्स :C-M.p,JS{srMQhMJ

टुपल्स को श्रेणियों में बदल दें, एक सूची में जोड़ दें, डुप्लिकेट करें और सॉर्ट करें। इसको बचाओ J। फार्म J, hMJऔर hMJ, J, जहां hMJहै Jके साथ हर तत्व 1. की वृद्धि हुई दोनों ही मामलों में घटाव निष्पादित करें। पूर्व पर्वतमाला का निचला छोर है, बाद वाला उच्च छोर है। जोड़े और प्रिंट में उन्हें स्थानांतरित करें।


9

सीजेएम, 162

  1. 25 बाइट्सqi),0Xt_ff{*s4Se]}N*s0'xt
  2. 12 बाइट्सq_:i:mh\,mq/(© डेनिस)
  3. 18 बाइट्सq~P*90/ms\_**9.81/
  4. 12 बाइट्सq$e`{0=~}$e~(© डेनिस)
  5. 16 बाइट्स1_{_2$+}99*]qi#)
  6. 22 बाइट्सqS/(1+1$s{1$#Lt}/)@@**
  7. 18 बाइट्सq~{,}$_z,f{W$e]}p;
  8. 16 बाइट्सq2>i25A5]:md]W%p
  9. 23 बाइट्सq~${_0=2$1=>{+$3%}|}*]p

डेनिस बलों में शामिल होने के लिए सहमत हुए :)


6

सीजेम, 223 बाइट्स

टास्क 1, 35 बाइट्स

ri_)_,0Xt2m*::*0'xt:s@s,2+f{Se]}/N*

इसे ऑनलाइन आज़माएं।

टास्क 2, 12 बाइट्स

q_:i:mh\,mq/

इसे ऑनलाइन आज़माएं।

टास्क 3, 27 बाइट्स

rd180/P*_mc\ms]rdf*~4.905/*

इसे ऑनलाइन आज़माएं।

टास्क 4, 12 बाइट्स

q$e`{0=~}$e~

इसे ऑनलाइन आज़माएं।

टास्क 5, 17 बाइट्स

XXri:R{_2$+}*]R#)

इसे ऑनलाइन आज़माएं।

टास्क 6, 25 बाइट्स

re!_rf#:!.*r:S;{N+SN+#)}=

इसे ऑनलाइन आज़माएं।

टास्क 7, 19 बाइट्स

{:C;{,}$_W=,f{Ce]}}

इसे ऑनलाइन आज़माएं।

टास्क 8, 33 बाइट्स

A4m*{:+}$r2>i:R;{[X5A25].*:+R=}=p

इसे ऑनलाइन आज़माएं।

टास्क 9, 43 बाइट्स

{{~1$-,f+}%:|$__,(%a\2ew{:-W<},+e_$2/2,f.+}

इसे ऑनलाइन आज़माएं।


4

हस्केल, 650 बाइट्स

टास्क 1, 88 बाइट्स:

f n="x   "++unlines(map(take 4.(++"   ").show=<<)$[1..n]:map(\a->a:map(a*)[1..n])[1..n])

टास्क 2, 76 बाइट्स:

g s=sqrt(sum(map(fromIntegral.(^2).fromEnum)s)/sum(s>>[1]))

टास्क 3, 28 बाइट्स

v?a=v*v/9.81*sin(2*a*pi/180)

टास्क 4, 60 बाइट्स:

import Data.List
i x=concat$sortOn((0-).length)$group$sort x

टास्क 5, 64 बाइट्स

j=(%zip[0..]z);x%((i,h):t)|x<h=0|x==h=i|1<2=x%t;z=scanl(+)0(1:z)

टास्क 6, 93 बाइट्स

import Data.List
k a b c|q b a&&q c a=b++((a\\b)\\c)++c|1<2="";q=(.sort).isSubsequenceOf.sort

टास्क 7, 81 बाइट्स

import Data.List
s!f=map(take(maximum$map r s).(++cycle[f]))(sortOn r s);r=length

टास्क 8, 73 बाइट्स

m x=floor(x*100)#[25,10,5,1];x#[]=[];x#(h:t)|(d,m)<-divMod x h=(m#t)++[d]

टास्क 9, 87 बाइट्स ( एक समान चुनौती से @ MtnViewMark के उत्तर की एक बेशर्म प्रतिलिपि )

n i=foldr(&)[]i;p@(a,b)&(q@(c,d):r)|b<c=p:q&r|a>d=q:p&r|1<3=(min a c,max b d)&r;p&_=[p]

2

गणितज्ञ 10.3, 465 बाइट्स

ये सभी अनाम कार्य हैं। इसके अलावा, मार्टिन की मदद करने के लिए धन्यवाद, क्योंकि मैं मैथेमेटिका में एक नॉब हूं।

टास्क 1, 69 बाइट्स

Grid@Join[{Join[{"x"},r=Range@#]},Flatten/@({r,Outer[1##&,r,r]}\[Transpose])]&

\[Transpose] 3 बाइट "प्रतिरूप" प्रतीक है।

टास्क 2, 13 बाइट्स

Mean[#^2]^.5&

या

√Mean[#^2]&

(By 3 बाइट्स है)। RootMeanSquareमें निर्मित काफी कम पर्याप्त नहीं है ...

टास्क 3, 18 बाइट्स

Sin[2#2°]#/9.81#&

टास्क 4, 57 बाइट्स

""<>SortBy[c=Characters@#,{-c~Count~#&,ToCharacterCode}]&

टास्क 5, 33 बाइट्स

Tr@Position[Fibonacci@Range@#,#]&

या

Tr[Fibonacci@Range@#~Position~#]&

या

Tr[Fibonacci~Array~#~Position~#]&

टास्क 6, 178 बाइट्स (वर्तमान में एक बग) है

({s,a,b}=Characters@{##};q=If[#2~SubsetQ~#,List@@(Plus@@#-Plus@@#2),{}]&;i=If[#!={},##]&;x=i[q[s,a],{}];y=If[x!={},i[q[x,b],{},Null],Null];Echo[If[y!=Null,""<>Join@{a,y,b},""]])&

कम गोल्फ वाला:

({s,a,b}=Characters@{##};
q=If[#2~SubsetQ~#,List@@(Plus@@#-Plus@@#2),{}]&;
i=If[#!={},##]&;
x=i[q[s,a],{}];
y=If[x!={},i[q[x,b],{},Null],Null];
Echo[If[y!=Null,""<>Join@{a,y,b},""]])&

स्ट्रिंग हेरफेर भयानक है ...

टास्क 7, 39 बाइट्स

#~SortBy~StringLength~StringPadRight~#1

टास्क 8, 46 बाइट्स

FrobeniusSolve[{1,5,10,25},100#]~MinimalBy~Tr&

या

{.1,.5,.10,.25}~FrobeniusSolve~#~MinimalBy~Tr&

टास्क 9, 12 बाइट्स

Interval@##&

कंस्ट्रक्टर को दिए गए अंतराल स्वचालित रूप से यूनियन-एड हैं। को हराया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.