გააზიარეთ თქვენი ბოლო ორი სამუშაოს ერთ-ერთში ყველაზე საინტერესო დავალება ან ყველაზე საინტერესო შეცდომა.
Frontend
/** * ტესტავს, არის თუ არა ბეჭდები ბალანსში ან არა. * ბეჭდები, რომლებიც შეიძლება შეხვდეს სტრიქონში: * [[{ და }]] * @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; }
რა ხდება მომხმარებელმა URL-ის შეყვანის შემდეგ და Enter-ის დაჭერის შემდეგ, სანამ გვერდი ეკრანზე გამოჩნდება?
რატომ გამოიყენეთ პერსონალიზებული გადაწყვეტა გრაფიკებისთვის, ნაცვლად მზადყოფნის ბიბლიოთეკების (მაგალითად, Grafana)?
თქვენ მუშაობდით გვერდის დატვირთვის ოპტიმიზაციაზე და Web Vitals მეტრიკებზე (LCP, FMP, FCP)?
რა განსხვავებაა script ტეგში async და defer ატრიბუტებს შორის? როგორ ახდენენ მათ გავლენას JavaScript-ის ჩატვირთვა და შესრულება?
როგორ იყო მოწყობილი CI/CD? იყენებდით GitLab pipeline-ს თუ რაღაც სხვა?
როგორ იყო ორგანიზებული ტესტირება? რა ინსტრუმენტები გამოიყენეს (Jest, Playwright)?
როდის და რამდენჯერ მონაწილეობდით წარმოებაში და რა იყო თქვენი როლი ამ პროცესში?
არსებობს ავტომატური ბანკომატი განსაზღვრული ნომინალების ბანკნოტებით. მომხმარებელი ირჩევს მიღების სურვილული თანხას. ავტომატური ბანკომატი უნდა გამოიტანოს მომხმარებლის მიერ შეყვანილი თანხა მინიმალური ბანკნოტებით. დაწერეთ ავტომატური ბანკომატის ფუნქცია. function atm(notes, sum) { } // atm([1, 5, 50, 100], 362) => [100,100,100,50, 5, 5, 1, 1]