Реальные задачи с собеседований | Java
Open in Telegram
Буду сюда выкладывать реальные задачи и вопросы с собеседований, без копипаста с интернета и других каналов) Ссылка для друга - https://t.me/+K4vJFdalwlthYTQy Прислать задачи, реклама - @privatevoidmain
Show more4 354
Subscribers
+324 hours
+47 days
+2030 days
Posts Archive
Repost from N/a
Купил Claude Max за $100,что дальше? 👀
Работадатель оплачивает подписку на ИИ) Пока взял claude max 5x.
Поделитесь в комментариях самым полезным инсайтом или приемом работы с ИИ, который реально помог в работе.
Неочевидные фишки, удачные промпты, что прописали claude.md — всё интересно
Сбер
Сделать удаление элементов из списка, начиная с 3 повторений // Input: ['A', 'B', 'A', 'B', 'A', 'B', 'C', 'C', 'D', 'C', 'C'] // Output: [A, B, A, B, C, C, D] List<Character> removeDuplicates(List<Character> elements);#sber Прислать задачу | Подписаться
райф
@Service
class A {
@Autowired
private B b;
// исходный вызов приходит сюда
@Transactional
public void doA() {
// some work with BD A
try {
b.doB();
} catch (Exception ex) {
// just log
}
}
}
@Service
class B {
@Transactional
public void doB() {
// some work with DB
if (true) { // some operation with exception
throw new IllegalStateException();
}
}
}
// Вопрос: Какие изменения окажутся в БД:
// 1. A and B
// 2. A
// 3. B
// 4. nothing
Тбанк (стажировка)
/* * Дана строка s, состоящая только из латинских строчных букв. * Назовем строку хорошей, если в ней в качестве подстроки * будут встречаться как строка "tbank", так и строка "study". * * Найти минимальное количество символов нужно поменять в строке, * чтобы получившаяся строка стала хорошей. * * Входные данные: * Строка s, где 10 <= |s| <= 10^5 * Гарантировано, что строка содержит только строчные буквы латинского алфавита. * * Выходные данные: * Одно число — минимальное количество символов нужно заменить * в старой строке так, чтобы встречались как подстрока "tbank", так и "study". * * Примеры: * "tbankstudy" -> 0 (уже содержит обе подстроки) * "studtbankk" -> 5 (нужно поменять 5 символов) */ public static int solve(String s) { // TODO }#tbank Прислать задачу | Подписаться
Тбанк (стажировка)
/* * Дана строка s, которая содержит только цифры от 0 до 9, * в которой не все элементы равны 0. * Нужно переставить в ней цифры таким образом, чтобы число, * которое представляет данная строка, было минимально возможным, * а также чтобы в этой строке не было ведущих нулей. * * Число содержит ведущие нули, если число не равно нулю, * но при этом в начале числа стоит цифра 0. * Так, например, числа 01, 0303 содержат ведущие нули, * тогда как 0, 30000 нет. * * Входные данные: * Строка s, где 1 <= |s| <= 9 * Гарантируется, что в строке есть элемент, отличный от 0. * * Выходные данные: * Строка — минимально возможное число без ведущих нулей. * * Примеры: * "682902" -> "202689" * "01" -> "10" */ public static String solve(String s) { // TODO }#tbank Прислать задачу | Подписаться
Uzum
Описать как такое будет работать от этапа что код написан до его выполнения на процессоре. Описать как можно данный код выполнить. Что такое интерпретаторы? Какие бывают? Что такое JIT и GraalVM? public class MainClass { public static void main(String[] args) { System.out.println("Hello, World!"); } }Прислать задачу | Подписаться
Яндекс
Написать без спринга и с юнитами (за час)
/* Вы — backend-разработчик в финтех компании. Компания предоставляет платежные услуги и должна контролировать лимиты пользователей. Product owner просит создать систему проверки лимитов перед проведением платежей. ## Определения Платеж: - id пользователя - сумма (в рублях с копейками) - тип операции (только списание) - время операции Лимиты пользователя: - суточный лимит по сумме (за 24 часа) - максимальный размер одной операции История операций: - список совершенных платежей пользователя ## Важно Настройки лимитов пользователей и история платежей предоставляются другими компонентами системы. Вам необходимо спроектировать контракты для получения этих данных. Реализацию этих компонентов делать не нужно. ## Задача Написать систему проверки лимитов, которая: - на вход получает платеж - проверяет лимиты - возвращает результат проверки: можно ли провести операцию - если нельзя, то указывает причину (какой именно лимит будет превышен) Проведение платежа не входит в вашу задачу - другая команда займется обработкой платежей после проверки. Ваша задача - только проверка возможности проведения платежа. ## Ограничения В рамках данной задачи считаем, что все платежи одного пользователя происходят строго последовательно. Во время проверки лимита не может быть проведен платеж того же пользователя. */ class PaymentsChecker { public ??? checkPayment(??? payment) { Написать систему проверки лимитов, которая: - на вход получает платеж - проверяет лимиты - возвращает результат проверки: можно ли провести операцию - если нельзя, то указывает причину (какой именно лимит будет превышен) // TODO implement } } interface PaymentsHistoryService { // TODO any functions } interface UserLimitsService { // TODO any functions }#yandex Прислать задачу | Подписаться
Сбер страхование
Какая сложность у этого цикла?
for (int i = 0; i < n; ++i) { for (int j = 1; j < n; j *= 2) { //something } }#sber Прислать задачу | Подписаться
[SENIOR] Какая зарплата на руки с одной работы в рублях (с учетом премий)?
Цифровые привычки (вроде на проект #sber)
@Service public class Handler { @Value("target.uri") private String targetUri; @Value("target.port") private int port; @Value("target.path") private String path; @Autowired private RestTemplate template; public boolean handle(Event event) { try { String fileContent = Files.readString(Paths.get(event.getSource())); HttpEntity<String> request = new HttpEntity<>(fileContent); template.postForObject(targetUri, request, String.class, port, path); return true; } catch (Exception exc) { //exception throw new RuntimeException("cannot read data"); } } }Прислать задачу | Подписаться
Сбер страхование
//что не так в таком api? //что если мы захотим расширить профиль, добавляя еще какой-то тип документа, как будем это делать? GET https://hr-test.ru/api/user-profile/8001 Auth Type: Bearer Token Response { "error": null, "data": { "id": 8001, "FIO": "John Doe", "seriesNumber": 4352 479893 } }#sber Прислать задачу | Подписаться
какой-то банк (мб альфа или райф) #unknown
Есть таблица Person(name, age). 1. Написать запрос, который выведет имена и максимальный возраст для каждого имени 2. SQL вывести дубликаты по name+age 3.Реализовать метод List<Person> getTopAgeForName(List<Person> persons), который повторяет логику из первой задачиПрислать задачу | Подписаться
Сбер стахование
//что будет выведено и почему? public class Main { public static void main(String[] args) throws Exception { A a = new A(); List<String> list = new ArrayList<>(); a.f(list); } } class A { void f(Iterable<String> l) { System.out.println("A"); } void f(Collection<String> l) { System.out.println("B"); } void f(ArrayList<String> l) { System.out.println("C"); } void f(LinkedList<String> l) { System.out.println("D"); } }#sber Прислать задачу | Подписаться
Available now! Telegram Research 2025 — the year's key insights 
