/** * Ellenőrzi, hogy a zárójelek kiegyensúlyozottak-e a szövegben vagy sem. * A szövegben előforduló zárójelek: * [[{ és }]] * @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
Mesélj a legérdekesebb feladatról vagy a legérdekesebb hibáról az utolsó két munkahelyed egyikén.
Mi történik, miután a felhasználó beírja az URL-t a böngészőbe és megnyomja az Entert – egészen addig, amíg az oldal meg nem jelenik a képernyőn?
Miért használtak egyedi megoldást a grafikonokhoz a kész könyvtárak (pl. Grafana) helyett?
Hogyan volt szervezve a CI/CD? Használták a GitLab pipeline-t vagy valami különállót?
Mi a különbség az async és defer attribútumok között a script tagben? Hogyan befolyásolják a JavaScript betöltését és végrehajtását?
Foglalkoztál az oldalak betöltésének optimalizálásával és a Web Vitals metrikákkal (LCP, FMP, FCP)?
Hogyan szervezted meg a tesztelést? Milyen eszközöket használtál (Jest, Playwright)?
Milyen gyakran vettél részt a gyártásban, és mi volt a szereped ebben a folyamatban?
Van egy automatánk meghatározott címletek bankjegyeivel. A felhasználó kiválasztja a kívánt összeget. Az automata a felhasználó által megadott összeget a lehető legkevesebb bankjeggyel adja vissza. Írjon egy automatát. function atm(notes, sum) { } // atm([1, 5, 50, 100], 362) => [100,100,100,50, 5, 5, 1, 1]