Реальные задачи с собеседований | Java
Kanalga Telegram’da o‘tish
Буду сюда выкладывать реальные задачи и вопросы с собеседований, без копипаста с интернета и других каналов) Ссылка для друга - https://t.me/+K4vJFdalwlthYTQy Прислать задачи, реклама - @privatevoidmain
Ko'proq ko'rsatish4 354
Obunachilar
+324 soatlar
+47 kunlar
+2030 kunlar
Postlar arxiv
ВТБ #sql
Доменная модель компании ООО "Рога и копыта” представлена таблицами Department и Employee. Необходимо вывести список сотрудников (id, name), которые получают максимальную ЗП в своем отделе. Department === id name Employee === id department_id name salary#vtb Прислать задачу | Подписаться
Сбер
Задача на подсчет частоты чисел (Доп задание, отсортировать по значениям)
public static void main(String[] args) { List<Integer> list = List.of(1, 2, 3, 1, null, 2, 1, null, 3); System.out.println("Частоты: " + countNumberFrequency(list)); } //Java 8 public static Map<Integer, Integer> countNumberFrequency(List<Integer> numbers) { // todo return null; }#sber Прислать задачу | Подписаться
Газпромбанк
Сделать ревью
public class Parser { File file; public synchronized void setFile(File file) { this.file = file; } public synchronized File getFile() { return file; } public String getContent() throws IOException { InputStream i = new FileInputStream(file); String output = ""; int data; while ((data = i.read()) > 0) { output += (char) data; } return output; } public String getContentWithoutUnicode() throws IOException { InputStream i = new FileInputStream(file); String output = ""; int data; while ((data = i.read()) > 0) { if (data < 0x80) { output += (char) data; } } return output; } public void saveContent(String content) throws IOException { OutputStream o = new FileOutputStream(file); for (int i = 0; i < content.length(); i +=1) { o.write(content.charAt(i)); } } }#gazprombank Прислать задачу | Подписаться
BetweenExchange
Реализуйте класс CustomLinkedList, который будет работать по принципу очереди (FIFO - First In, First Out). методы push() и pop()
public class CustomLinkedList<T> { // Push - добавление нового элемента public void push(T data) { } // Pop - Удаляет и возвращает элемент из очереди public T pop() { } class Node<T> { }Прислать задачу | Подписаться
BetweenExchange
1/ Классическая задача про скобки и стек
2/ Реализовать функцию, которая вычисляет значение арифметического выражения
Допустимые операторы: +, -, *, /
["2", "1", "+", "3", "*"] = 9 ["4", "13", "5", "/", "+"] =6 ["2", "+"] = error ["5", "0", "/"] = error тут уточнили, что это польская обратная запись🤨Прислать задачу | Подписаться
Яндекс
Компания предоставляет сервис массовой рассылки уведомлений для других бизнесов. К вам обратился product owner с задачей создать систему фильтрации уведомлений с учетом предпочтений пользователей. ## Определения Уведомление: - id уведомления - тип уведомления (EMAIL, SMS, PUSH) - получатель (id пользователя) - текст сообщения Получатель может иметь настройки предпочтений: - разрешенные каналы уведомлений (список типов) - заблокированные отправители (список id отправителей) История отправленных уведомлений: - список уведомлений, отправленных пользователю ## Важно Настройки пользователей и история уведомлений предоставляются другими компонентами системы. Вам необходимо спроектировать контракты для получения этих данных. Реализацию хранения делать не нужно. ## Задача Написать систему фильтрации уведомлений, которая: - на вход получает список уведомлений для фильтрации и id отправителя - исключает уведомления, не соответствующие предпочтениям получателя - предотвращает повторную отправку: если уведомление с таким же id уже было отправлено конкретному пользователю за последние 24 часа, оно не должно быть отправлено снова (защита от дублирования) - возвращает отфильтрованный список уведомлений, готовых к отправке. Отправка уведомлений не входит в вашу задачу - другая команда займется отправкой отфильтрованного списка. Ваша задача - только фильтрация.#yandex Прислать задачу | Подписаться
Яндекс
Вы — backend-разработчик в интернет-магазине. Дела идут в гору и магазин решил повысить лояльность покупателей, предоставляя им персональные скидки. К вам обратился product owner с задачей создать простую систему лояльности, которая предоставляет процентную скидку на корзину. Размер скидки зависит от покупателя. Аналитики уже определили, какие скидки должны быть предоставлены покупателям. ## Определения Корзина - список покупок покупателя. Покупка: - id товара - цена - итоговая стоимость c учетом скидки ## Задача Написать часть новой системы лояльности, которая применяет скидку покупателя к корзине. - на вход получает id покупателя и корзину - вычисляет и применяет скидки - возвращает корзину, в которой учтены скидки - все расчёты в рублях, точность до копеек. Округления по математическим правилам Есть два вида скидки (не могут прийти одновременно): - процент от суммы корзины - фиксированная скидка Сумма скидки распределяется равномерно между товарами, пропорционально цене товара. Примеры: - скидка 50%, в корзине товары на 50р и 100р. Скидка 25р и 50р - скидка 10р, в корзине товары на 20р и 30р. Скидка 4р и 6р - скидка 10р, в корзине товары на 1р и 99р. Скидка 10коп и 9р 90коп#yandex Прислать задачу | Подписаться
Газпромбанк
Из исходного списка стран получить страну у которой будет максимальное значение отношения популяции к площади
import java.util.*; class Scratch { public static void main(String[] args) { List<Country> countries = Arrays.asList(new Country("country_1", 100, 5000), new Country("country_2", 9000, 500000), new Country("country_8", 6527, 6324687), new Country("country_11", 872321, 765237), new Country("country_9", 823743, 63543762), new Country("country_3", 800, 40000)); Country c = getTheBiggestCountry(countries); System.out.println(c); } public static Country getTheBiggestCountry(List<Country> countries) { // из исходного списка стран получить страну у которой будет максимальное значение отношения популяции к площади return null; } static class Country { public final String name; public final double area; public final long population; public String getName() { return name; } public double getArea() { return area; } public long getPopulation() { return population; } public Country(String name, double area, long population) { this.name = name; this.area = area; this.population = population; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof Country)) { return false; } Country country = (Country) o; return Double.compare(country.area, area) == 0 && population == country.population && name.equals(country.name); } @Override public int hashCode() { return Objects.hash(name, area, population); } @Override public String toString() { return "Country{" + "name='" + name + '\'' + ", area=" + area + ", population=" + population + '}'; } } }#gazprombank Прислать задачу | Подписаться
Газпромбанк
Сделать ревью
/** * Метод работает не всегда корректно. * Как его можно отрефакторить или переписать, и как проверить, что ничего не сломалось? * * Метод возвращает индекс элемента в последовательности чисел, который соответствует дубликату. * * @param numbers * @return * * 1,2,3,4,4,5,6 * 4 * */ public int findDuplicateIndex(int... numbers) { int[] countArray = new int[nubmers.length]; for (int i = 0; i < numbers.length; i++) { int current = numbers[i]; if (countArray[current] > 0) { return i; } else { countArray[current] += 1; } } throw new CustomException("Duplicate not found!"); }#gazprombank Прислать задачу | Подписаться
Тбанк
import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; //Отработает ли CountDownLatch нужное количество раз? public class Increment { private static int counter1 = 0; private static int counter2 = 0; Lock lock = new ReentranLock(); public static void main(String[] args) throws InterruptedException { int tasksCount = 100_000; CountDownLatch latch = new CountDownLatch(tasksCount); ExecutorService executor = Executors.newFixedThreadPool(100); for (int i = 0; i < tasksCount; i++) { executor.submit(() -> { counter1++; counter2++; latch.countDown(); }); } latch.await(); //сколько будет выведено? System.out.println(counter1); System.out.println(counter2); System.exit(0); } }#tbank #repeat Прислать задачу | Подписаться
Сбер
Ревью
class CodeProcessor { public void process(List<Code> codes) { for (Code code : codes) { if (CodeType.ITCP == code.getCodeType()) { doSmthngITCP(); } else if (CodeType.TLS == code.getCodeType()) { doSmthngTLS(); } else if (CodeType.OTHER == code.getCodeType()) { doSmthngOther(); } else { doDefault(); } } } private void doSmthngITCP() { System.out.println("Handling ITCP"); } private void doSmthngTLS() { System.out.println("Handling TLS"); } private void doSmthngOther() { System.out.println("Handling Other"); } private void doDefault() { System.out.println("Handling Default Case"); } } enum CodeType { ITCP, TLS, OTHER } class Code { private final CodeType codeType; public Code(CodeType codeType) { this.codeType = codeType; } public CodeType getCodeType() { return codeType; } } public class CodeProcessingApp { public static void main(String[] args) { List<Code> codes = Arrays.asList( new Code(CodeType.ITCP), new Code(CodeType.TLS), new Code(CodeType.OTHER) ); CodeProcessor processor = new CodeProcessor(); processor.process(codes); } }#sber Прислать задачу | Подписаться
На сколько снизилась ваша зарплата в 2025 году внутри одной компании?
На сколько выросла ваша зарплата внутри одной компании за 2025 год?
Кто менял работу (внутри айти, т.е не вкат) в 2025, на сколько тысяч рублей апнули зп
кто вкатился в айти в 2025, какую зп залутали?
Конец года - самое время подводить итоги. Скоро запилю серию опросов, как у вас прошел 2025 (кого сократили, кто вкатился и т.п.)
пишите в комменты, какие еще опросы запостить
Тбанк
// Необходимо написать функцию, которая получает строку с абсолютным UNIX-путем и возвращает укороченную версию, удаляя все ненужное: // Input: "/foo/../test/../foo//bar/./baz" // Output: "/foo/bar/baz" // Обозначения: // .. - возврат на директорию выше // . - текущая директория (по сути, просто мусор) // // - просто мусор // Вне корневой директории выйти нельзя#tbank Прислать задачу | Подписаться
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
