TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
Тихон | Помогаю разработчикам устроиться в BigTech

2 May, 17:42

Open in Telegram Share Report

А как у вас проходят праздники?)

У нас тут вопросы с собеседования в ozon 😏

В отличии от других компаний, задачи у озона очень часто повторяются. Поэтому мы решили расставить их не в порядке, в котором они были на собеседовании, а в порядке популярности. То есть чем выше задача — тем чаще ее спрашивали на наших собеседованиях.


Открывает наш топ задача на тему два указателя. В целом задачи на два указателя попадаются на собеседованиях довольно часто, но также легчайше решаются, если знать эту тему 👇

Задача 1:
// Написать функцию которая проверяет
// есть ли в строке указанные символы
// важно чтобы символы шли в строке
// в той же последовательности,
// не обязательно подряд

function needleInHaystack(needle, haystack) {
...
return false;
}

needleInHaystack('whe', 'cartwheel') // true
needleInHaystack('crt', 'cartwheel') // true
needleInHaystack('ctr', 'cartwheel') // false
needleInHaystack('weee', 'cartwheel') // false

Дальше задача на написание метода spyOn, который используется в Jest. Проверяет задача, по сути, контекст и методы его привязки. Мы редко видели ее в других компаниях, но в озоне ее дают почти на каждом собеседовании.

Задача 2:
// Функция должна позволять отслеживать
// вызовы оригинальной функции
// не заменяя при этом её поведение
// Для хранения аргументов отслеживаемых вызовов
// необходимо использовать массив calls.

function spyOn(obj, key) {}

const person = {
firstName: "",
lastName: "",
update(fullName) {
const [firstName, lastName] = fullName.split(" ");
this.firstName = firstName;
this.lastName = lastName;
},
};

const spy = spyOn(person, "update");

person.update("Иван Иванов");

console.log(person.firstName, person.lastName); // Иван Иванов

person.update("Пётр Петров");

console.log(person.firstName, person.lastName); // Пётр Петров

console.log(spy.calls); // ['Иван Иванов', 'Пётр Петров']

Далее задача на написание compose. Немного напоминает школьную математику, когда есть несколько функций, которые вызываются по цепочке, передавая результат выполнения из вложенной функции. Например -> f(g(x)), только написать это нужно на js.

Также можно решить через reduceRight, но не уверен стоит ли решать через него. Разработчики довольно редко используют этот метод, а вот нейронки — спокойно) Поэтому все решения с reduceRight предлагал бы аккуратно.

То же кстати касается регулярок, наизусть синтаксис помнят не все, поэтому могут понять не так.


Задача 3:
// Нужно написать функцию compose,
// которая принимает функции
// и вызывает их задом наперёд.

const composedFn = compose(
a => a - 8, // Будет выполнена третьей
b => b ** 2, // Будет выполнена второй
(x, y) => y > 0 ? x + 3 : x - 3 // Будет выполнена первой
);

console.log(composeFn("3", 1)) // 1081
console.log(composeFn("3", 1)) // -8

Также в задаче есть небольшой трюк с приведением типов..)

Еще в комментариях добавлю небольшую задачу на верстку, чтобы пост не получился слишком большим 👋
На ней на можно отдохнуть и перевести дух, после предыдущих)

Если задачи были полезными, ставьте 👍 или пишите в комментариях какую компанию смотрим следующей)

@codepunks_bro

3.6k 0 141 3 56
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot