/** * Pārbauda, vai iekavas ir līdzsvarotas virknes vai nē. * Iekavas, kas var sastapties virknes: * [[{ un }]] * @param {string} str * @return {boolean} */ function parentheses(str) { const open = ['(', '[', '{']; const close = [')', ']', '}']; const stack = []; for (let i = 0; i < str.length; i++) { const letter = str[i]; if (open.includes(letter)) { stack.push(letter); } else if (close.includes(letter)) { const index = close.indexOf(letter); const lastOpenIndex = stack.length - 1; if (open[index] !== stack[lastOpenIndex]) { return false; } else { stack.splice(lastOpenIndex, 1); } } } return stack.length === 0; }
Frontend
Pastāstiet par interesantāko uzdevumu vai interesantāko kļūdu vienā no jūsu pēdējām divām darba vietām.
Kas notiek pēc tam, kad lietotājs ievada URL pārlūkprogrammā un nospiež Enter, līdz lapas attēlošanai uz ekrāna?
Kāpēc izmantojāt pielāgotu risinājumu grafikiem, nevis gatavas bibliotēkas (piemēram, Grafana)?
Kādas ir atšķirības starp async un defer atribūtiem script tagā? Kā tie ietekmē JavaScript ielādi un izpildi?
Kā bija organizēts CI/CD? Vai izmantojāt GitLab pipeline vai kaut ko atsevišķu?
Vai jūs strādājāt pie lapu ielādes optimizācijas un Web Vitals metriku (LCP, FMP, FCP)?
Kā tika organizēts testēšana? Kādus rīkus izmantoja (Jest, Playwright)?
Cik bieži jūs piedalījāties ražošanā un kāda bija jūsu loma šajā procesā?
Ir automatizēts bankomāts ar noteiktiem nomināla banknotiem. Lietotājs izvēlas summu, ko vēlas saņemt. Automātiskais bankomāts jāatdod lietotāja ievadītā summa ar minimālo banknotu skaitu. Uzrakstiet bankomāta funkciju. function atm(notes, sum) { } // atm([1, 5, 50, 100], 362) => [100,100,100,50, 5, 5, 1, 1]