Colloquia in societatibus technicis iam diu oppidi disputatio fuit. Hoc mirum non debet - colloquium feliciter transiens occasionem bonam obtinendi dat tibi. Sed hoc non est tam simplex, cum problemata multiplicia saepe solvi oporteat.
Saepius autem haec negotia maxime pertinent ad opus quod petentem faciet, sed solvendum adhuc est. Aliquando in tabula facere debes, sine Google vel alio fonte iniecta. Ita res paulatim mutantur, et nonnullae societates tales colloquia deserunt, sed multi laboris locatores adhuc huic traditioni adhaerent. Hic articulus est in analysi JavaScript munerum typicarum, qui saepe pro penso ad officium petentium adhibentur.
admonemus;omnibus legentibus "Habr" - discount 10 rublorum cum scribendo in quavis Skillbox utens "Habr" codice promotivo.
Etiam, antequam inspicere incipimus officia, inspiciamus aliquod colloquium generale apicibus praeparationis.
Summa est praeparare in antecessum. Proba quam bene algorithmarum et notitiarum structurarum memineris, et scientiam tuam in locis emendare quae tibi non nimis nota sunt. Multa sunt suggesta online quae colloquiis para te iuvare possunt. monemus geeksforgeeks, Pramp, Interviewing.io и CodeSignal.
Discere bene est dicere sententiam magna. Petitores de re quae agis narrare visum est, et non modo scribe in tabula (vel codicem typus in computatorium, etiam tacite). Hoc modo, si erras in codice, sed solutio plerumque recta est, casus successus augere potes.
Priusquam problema solvere incipias, debes intelligere. In quibusdam, negotium summatim intelligas et tunc perversas descendas. Sit operae pretium quaerere paucis quaestiones declarantes ad Interviewer.
Codicem manu scripto exercere debes, non PC. Contingit ut in colloquiis petentem detur titulum et tabulae albae, ubi nullae sunt ambages aut forma latae sententiae. Cum solutionem quaeris, pretium est codicem tuum scribere in charta vel directe in tabula. Si omnia in capite teneas, aliquid momenti oblivisci possis.
Formula opera in JavaScript
Horum operum nonnulla fortasse iam tibi nota sunt. Aut colloquia habuisti ubi simile aliquid solvendum habuisti, aut in illis exercita es cum JavaScript discendo. Bene, nunc tempus est eas iterum solvere et cum accurata explicatione processus.
Palindrome
Palindromus est verbum, sententia vel series notarum quae tam in usitate quam in opposito legitur idem prorsus. sicut Anna palindromus, mensa autem et Ioannes non sunt.
productio
chorda detur; opus est tibi munus scribere, quod verum si palindromum chorda est, et falsum si non sinat reddere tibi. In hoc casu, spatia et puncta interpunctionis rationem habere debes.
Praecipua notio hic est ut chorda convertatur. Si chorda "versa" cum originali prorsus identica est, tum palindromum accepimus et munus verum reddere debet. si minus, falsum.
arbitrium
Hic est codex qui palindromam solvit.
const palindrome = str => {
// turn the string to lowercase
str = str.toLowerCase()
// reverse input string and return the result of the
// comparisong
return str === str.split('').reverse().join('')
}
Primus gradus est characteres in linea initus ad lowercase convertere. Haec cautio est ut programmata ipsa ingenia conferat, et non casus, nec aliquid aliud.
Secundus gradus est ad lineam convertendam. Hoc non difficile est facere: necesse est eam in aciem .split() converti utentem (Bibliothecam String). Tunc ordinatis utentes reverse () (Array library). Ultimus gradus est conversos ordinatas ad chordas converti utens .join() (Array library).
Nunc omne quod debes facere est compara "reuerso" chorda cum chorda originali, eventum reddens verum vel falsum.
FizzBuzz
Una ex festis officiis in colloquiis.
productio
Debes scribere functionem quae imprimit numeros ab 1 ad n ad consolatorium, ubi n est integrum ut munus pro modulo sumit, cum sequentibus conditionibus:
output fizz instead of multiplex of 3;
stridore output loco numeri qui multiplices 5 sunt;
fizzbuzz output pro numerorum qui multiplices utriusque 3 et 5 sunt.
exempli gratia
Fizzbuzz(5)
exitum
// MMVIII
// MMVIII
// fizz
// MMVIII
//buzz
Sit scriptor negotium resolvere
Summa hic est via ad inveniendum multiplices JavaScript. Modulus operantis vel residuum - % utens perfici potest, quod sinit ut ostendas residuum cum duos numeros dividens. Si residuum est 0, significat quod primus numerus multiplex est secundi.
12% 5 // 2 -> 12 multiplex non est ex 5
12% 3 // 0 -> 12 multiplex est ex 3
Si ergo dividas 12 per 5 , habebis 2 cum reliquo 2 . Si dividas 12 per 3, cum reliquo 4. In primo casu habebis 0 , 12 non est multiplex in 5, in secundo. , 12 multiplex est III.
arbitrium
Optima solutio in codice sequenti esset:
const fizzBuzz = num => {
for(let i = 1; i <= num; i++) {
// check if the number is a multiple of 3 and 5
if(i % 3 === 0 && i % 5 === 0) {
console.log('fizzbuzz')
} // check if the number is a multiple of 3
else if(i % 3 === 0) {
console.log('fizz')
} // check if the number is a multiple of 5
else if(i % 5 === 0) {
console.log('buzz')
} else {
console.log(i)
}
}
}
Munus necessarios compescit utens constitutionibus condicionalibus et effectum ab utente requisitum producit. In problemate, attendendum est ad ordinem si... ceterarum enuntiationum: incipere a duplici condicione (&&) et fini cum casu ubi plures numeri inveniri non potuerunt. Quam ob rem omnia bene tegimus.
Anagramma
Hoc enim nomen est verbi, quod omnes literas alterius verbi eodem numero continet, sed alio ordine.
productio
Debemus scribere functionem quae impedit num duae chordae sint anagramma, et casus nihil refert. Tantum ingenia numerantur; spatia seu puncta non ratio.
anagramma ('inventum', 'amicum') —> verum
anagramma ('salve', 'vale') —> falsum
Sit scriptor negotium resolvere
Refert hic considerare quod necesse est singulas litteras in duabus lineis inputare et numerum in unaquaque linea reprimere.
Ad anagramma data congregem, debes structuram eligere ut objectum litterale JavaScript. Clavis in hoc casu litterae indoles est, valor repetitionum in linea currenti numerus est.
Aliae conditiones sunt:
Opus fac ut literarum casus conferendi ratio non habeatur. Simpliciter chordas ad inferiorem vel superiorem causam convertimus.
Omnes notas non-ex comparatione excludimus. Optimus est opus cum expressions regularis.
arbitrium
// helper function that builds the
// object to store the data
const buildCharObject = str => {
const charObj = {}
for(let char of str.replace(/[^w]/g).toLowerCase()) {
// if the object has already a key value pair
// equal to the value being looped over,
// increase the value by 1, otherwise add
// the letter being looped over as key and 1 as its value
charObj[char] = charObj[char] + 1 || 1
}
return charObj
}
// main function
const anagram = (strA, strB) => {
// build the object that holds strA data
const aCharObject = buildCharObject(strA)
// build the object that holds strB data
const bCharObject = buildCharObject(strB)
// compare number of keys in the two objects
// (anagrams must have the same number of letters)
if(Object.keys(aCharObject).length !== Object.keys(bCharObject).length) {
return false
}
// if both objects have the same number of keys
// we can be sure that at least both strings
// have the same number of characters
// now we can compare the two objects to see if both
// have the same letters in the same amount
for(let char in aCharObject) {
if(aCharObject[char] !== bCharObject[char]) {
return false
}
}
// if both the above checks succeed,
// you have an anagram: return true
return true
}
Attende ad usum Object.keys () apud Snippet supra. Haec methodus reddit ordinem ordinatum continens nomina vel claves eo ordine quo in obiecto apparent. In hoc casu talis erit ordo:
['f', 'i', 'n', 'd', 'e', 'r']
Et hoc modo accipimus proprietates obiecti sine mole ansa. In problemate, hac methodo uti potes cum longitudine proprietatis ad reprimendam an ambae chordae totidem notas habeant - hoc magni momenti notam anagrammatum habent.
Quaere vocales
Munus satis simplex quod saepe in colloquiis occurrit.
productio
Munus scribere debes quod chorda argumentum accipit et numerum vocalium quae in chorda continentur reddit.
Vocales sunt "a", "e", "i", "o", "u".
Magni interest attendere ad usum methodi .includes() . Utraque chordis et vestit praesto est. Adhibendum est determinare an ordo certum valorem contineat. Haec methodus vera redit si ordinata contineat valorem determinatum, et falsum si non.
Hoc utitur methodo .par(), quae te permittit ut investigationem efficientem efficiant. Si expressio regularis ut methodus argumenti intra chordam determinatam invenitur, tunc valor reditus numerus characterum congruentium est. Bene, si par nullae sunt, tunc .par() nullum redit.
fibonacci
Munus classicum quod in colloquiis variis in gradibus inveniri potest. Memorabile est sequentiam Fibonacci esse seriem numerorum in quibus unumquodque sequens est summa duorum priorum. Numeri decem primi hoc modo spectant: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34;
productio
Munus scribere debes, quod testimonium in quadam serie recurrit, cum n numerus qui argumento munere praemittitur.
fibonacci(3) // —> 2
Hoc negotium involvit ambulationem per ansam pluries in argumento descripto, reddens valorem ad convenientem statum. Hic modus ponendi quaestionem requirit usum ansarum. Si recursus potius uteris, Interviewer placere potest et pauca puncta extra te dare.
arbitrium
const fibonacci = num => {
// store the Fibonacci sequence you're going
// to generate inside an array and
// initialize the array with the first two
// numbers of the sequence
const result = [0, 1]
for(let i = 2; i <= num; i++) {
// push the sum of the two numbers
// preceding the position of i in the result array
// at the end of the result array
const prevNum1 = result[i - 1]
const prevNum2 = result[i - 2]
result.push(prevNum1 + prevNum2)
}
// return the last value in the result array
return result[num]
}
Ordinate in eventibus, duo primi numeri in serie continentur, quia uterque introitus in ordine est summa duorum priorum numerorum. In ipso initio duo numeri non sunt qui sumi possunt ad numerum proximum acquirendum, unde fascias eos automatice generare non potest. Sed, ut novimus, primi duo numeri semper sunt 0 et I. Ergo initialize potes proventus manually.
Quod ad recursum attinet, simpliciora omnia simul et intricata sunt;
const fibonacci = num => {
// if num is either 0 or 1 return num
if(num < 2) {
return num
}
// recursion here
return fibonacci(num - 1) + fibonacci(num - 2)
}
Nos fibonaccos vocamus, numeros minores et minores obiter ut argumenta. Desinimus quando argumentum lata est 0 vel 1 .
conclusio,
Verisimile, si in frontend vel JavaScript officium elit elit (praesertim si in minore gradu est). Quod si non occurreris, in posterum usui esse possunt, saltem ad communem progressionem.