ru
Feedback
Реальные задачи с собеседований | Java

Реальные задачи с собеседований | Java

Открыть в Telegram

Буду сюда выкладывать реальные задачи и вопросы с собеседований, без копипаста с интернета и других каналов) Ссылка для друга - https://t.me/+K4vJFdalwlthYTQy Прислать задачи, реклама - @privatevoidmain

Больше
4 354
Подписчики
+124 часа
+87 дней
+1430 день
Архив постов
Сбер Ищут джуна-архитектора😳😂 Ищут джуна, чтобы потом дообучить его на архитектора
import java.util.*; import java.lang.*; import java.io.*; //Напишите программу, которая заменяет все вхождения строки "abc" на "xyz" в данном тексте(abc is a string with abc in it) class Codechef { public static void main (String[] args) throws java.lang.Exception { } }
#sber | Прислать задачу | Подписаться

Яндекс
Дано 2 массива с числами от 1 до N, нужно найти уникальные пересечения множеств элементов из первого и второго для каждого из N индексов Пример: 1 2 3 5 4 5 3 7 4 1 Ответ: 0 0 1 2 3 для нулевого индекса нет пересечений среди элементов доступных в настоящий момент(1 в первом и 5 во втором) для первого индекса тоже(1,2 в первом и 5,3 во втором) для 2го индекса: 1,2,3 в первом и 5,3,7 во втором. Есть пересечение 3 - ставим 1
#yandex | Прислать задачу | Подписаться

Авито
В жизни каждого приходит время, когда надо отправиться в отпуск. Но мы смотрим на календарь и понимаем, что впереди куча встреч, которые не хочется пропускать. Необходимо определить день X начала отпуска длиной в V дней так, чтобы отгулять весь отпуск в ближайшие P дней и пропустить минимум Y встреч. Считаем, что уже завтра первый возможный день отпуска (day: 1) # Пример 1 # ввод daysWithMeetings = [{ day: 3, meetings: 1 }, { day: 4, meetings: 3 }, { day: 14, meetings: 3 }, { day: 21, meetings: 3 }, { day: 28, meetings: 1 },] # дни со встречами уже упорядочены periodLength = 30 # В какой срок надо отгулять ВЕСЬ отпуск. В данном примере в ближайшие 30 дней vacationLength = 7 # вывод [5, 0] # [день X начала отпуска, сколько встреч Y пропустим] # Пример 2 # ввод daysWithMeetings = [{ day: 3, meetings: 1 }, { day: 4, meetings: 3 }, { day: 5, meetings: 3 }, { day: 9, meetings: 5 }, { day: 13, meetings: 2 }, { day: 14, meetings: 1 }, { day: 21, meetings: 3 }, { day: 25, meetings: 3 }, { day: 28, meetings: 6 },] periodLength = 31 vacationLength = 14 # вывод [10, 6] # [через сколько дней начало отпуска, сколько встреч пропустим]
#avito | Подписаться

Яндекс
Дан массив чисел a_1, a_2, ..., a_n. Необходимо найти монотонный подотрезок (то есть строго убывающий или строго возрастающий) максимальной длины и вернуть пару индексов его начала и конца. Примеры: [2, 7, 5, 4, 4, 3] -> [1, 3] [1, 1] -> {1, 1} // or [0, 0] */ [1, 10, 10] - {1, 10}
#yandex | Прислать задачу | Подписаться

Яндекс
/* Корзина - список товаров покупателя. Товар: - id - цена - итоговая стоимость c учетом скидки Скидка. Для покупателя может быть задан % скидки (целое число). ## Задача Написать часть системы, которая: - на вход получает id покупателя и корзину - вычисляет и применяет скидки - возвращает корзину, с применёнными скидками. Скидка учитывается в стоимости покупки */
#yandex | Прислать задачу | Подписаться

Всех с окончанием рабочей недели) #fridaymemes

Яндекс
/* Написать функцию, которая принимает 2 строки (текст и алфавит) и возвращает самую короткую подстроку этого текста, в которой есть каждый символ из алфавита хотя бы по разу (но возможно и другие символы тоже). Если подстрок подходящей длины несколько, нужно вернуть ту, которая находится ближе к началу текста. Про вторую строку гарантируется, что она непустая и содержит только уникальные символы. Примеры: searchPangram("abacaba", "bc") == "bac" <- выбираем левую из двух одинаковой длины 'bac' и 'cab' searchPangram("bacb", "bc") == "cb" abbc ac => abbc searchPangram("abacaba", "bcd") == "" */
#yandex | Прислать задачу | Подписаться

СБЕР Что будет выведено на экран? #sber | Прислать задачу | Подписаться
СБЕР Что будет выведено на экран? #sber | Прислать задачу | Подписаться

Rightline (аутстафф в тбанк) Сделать код-ревью
/** * API поиска авторов и их книг по имени автора (полное ФИО или часть имени в любом регистре). * Также компонент при каждом поиске обновляет статистику по частоте использования поисковой строки (сбрасывается раз в сутки другой системой) * При обнаружении популярного запроса (> 1000 запросов в сутки), по которому находится много авторов, отправляется алерт. * Алерт должен отправляться не более 1 раза за сутки для каждого запроса * Все классы на самом деле находятся в разных файлах, однако здесь представлены в одном месте для удобства */ @RestController public class AuthorController { @Autowired private AuthorSearchService service; @GetMapping("/authors") public List<AuthorDto> readAllAuthors(@RequestParam String query) { List<Author> authors = service.search(query); return authors.stream().map(el -> { return new Mapper().map(el); }).collect(Collectors.toList()); } } @Component public class AuthorSearchService { @Autowired private AuthorsRepository authorsRepository; @Autowired private StatisticsRepository statisticsRepository; private AlertRestClient arc = new AlertRestClient(); // В query может быть как полностью ФИО, так и часть имени, например "Вадим Панов" или "панов" @Transactional public List<Author> search(String query) { List<Author> authors = authorsRepository.findByNameContainingIgnoreCase(query); Statistics s = statisticsRepository.findById(query).orElse(null); if (s == null) s = new Statistics(query); s.setNumbers(s.getNumbers() + 1); statisticsRepository.save(s); if (s.getNumbers() > 1000 && authors.size() > 1000) { System.out.println("too popular search with too much data, sending an alert..."); arc.send(query, s.getNumbers(), authors.size()); } return authors; } } @Entity @Data public class Author { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "author") private List<Book> books; public Author(String name) { this.name = name; } } @Entity @Data public class Statistics { @Id private String query; private int numbers; public Statistics(String query) { this.query = query; } } @Data public class AuthorDto { private Long id; private String name; private List<Book> books; } @Entity @Data public class Book { private Long id; private String name; }
Прислать задачу | Подписаться

диип200
Задача 2 Есть 3 сервиса. Реклама баннерная (видео баннер, изображение, текстовый) Курсы валют (код валюты, название, покупка, продажа) Меню услуг (название, описание, изображение) Есть клиентские приложения: ЖК панель, которая отображает рекламу и курсы. Обращается к сервисам 1 и 2. Терминал (киоск), который отображает меню услуг и выдает талончики. Может отображать курсы и рекламу. Обращается к сервису 1, 2, 3. Необходимо: Реализовать API для клиентских приложений. Клиентские приложения (ЖК, Киоск) не должны отображать изменения, без подтверждения человека. Например: Мы изменили в сервисе рекламу, загрузили новую картинку или изменили существующую, она должна пройти модерацию человеком сначала, после подтверждения на ЖК будут видны изменения. Второй пример: Киоск отображает меню услуг, в адмике изменили название услуги, это название должна пройти модерацию, только после этого Киоск ее получит. До подтверждения, Киоск отображает старое название.
Прислать задачу | Подписаться

диип200
* Задача 1. * Есть массив слов в котором может быть любое число элементов разной длины. * Необходимо этот массив преобразовать в массив строк всех возможных комбинаций букв из этих слов пример: * * Пример входящего массива ["on", "job", "lake"]. * Результат выходящего: * [ * "ojl", * "oja", * "ojk", * "oje", * "ool", * "ooa", * "ook", * "ooe", * "obl", * "oba", * "obk", * "obe", * "njl", * "nja", * "njk", * "nje", * .... * ] * * function run(words: string[]): string[] { * // напишите свой код * }
Прислать задачу | Подписаться

Авито (#repeat)
На Авито размещено множество товаров, каждый из которых представлен числом. У каждого покупателя есть потребность в товаре, также выраженная числом. Если точного товара нет, покупатель выбирает ближайший по значению товар, что вызывает неудовлетворённость, равную разнице между его потребностью и купленным товаром. Количество каждого товара не ограничено, и один товар могут купить несколько покупателей. Рассчитайте суммарную неудовлетворённость всех покупателей. Нужно написать функцию, которая примет на вход два массива: массив товаров и массив потребностей покупателей, вычислит сумму неудовлетворённостей всех покупателей и вернет результат в виде числа. Пример # Пример # ввод goods = [8, 3, 5] buyerNeeds = [5, 6] # вывод res = 1 # первый покупатель покупает товар 5 и его неудовлетворённость = 0, второй также покупает товар 5 и его неудовлетворённость = 6-5 = 1
#avito | Подписаться

СБЕР
Реализовать паттерн cache. Если элементов > 1000, то удаляется самый старый элемент
#sber | Прислать задачу | Подписаться

Сбер Что будет при вызове метода it(), если произойдет ошибка 1. в insert()? 2. в update()? #sber | Прислать задачу | Подписа
+1
Сбер Что будет при вызове метода it(), если произойдет ошибка 1. в insert()? 2. в update()? #sber | Прислать задачу | Подписаться

авито (не 100%) Что будет выведено? #aston | Прислать задачу | Подписаться
авито (не 100%) Что будет выведено? #aston | Прислать задачу | Подписаться

За 5 минут до дейлика😂 Всех с окончанием рабочей недели) #fridaymemes

Астон Что будет выведено на экран? #aston | Прислать задачу | Подписаться
Астон Что будет выведено на экран? #aston | Прислать задачу | Подписаться

Сбер (#qa auto)
Написать функцию, которая выводит на экране текст счастливый билет, или не счастливый. входное число состоит из 6 цифр, билетик считается счастливым если первые 3 цифры в сумме равны сумме последним трем цифрам.
#sber | Прислать задачу | Подписаться

Райффанзенбанк
/* Дана строка (возможно, пустая), состоящая из букв A-Z: AAAABBBCCXYZDDDDEEEFFFAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBB Нужно написать функцию RLE, которая на выходе даст строку вида: A4B3C2XYZD4E3F3A6B28 И сгенерирует ошибку, если на вход пришла невалидная строка. Пояснения: Если символ встречается 1 раз, он остается без изменений; Если символ повторяется более 1 раза, к нему добавляется количество повторений. */
#repeat #raif | Прислать задачу | Подписаться