Реальные задачи с собеседований | Java
4.32K subscribers
288 photos
53 videos
2 files
574 links
Буду сюда выкладывать реальные задачи и вопросы с собеседований, без копипаста с интернета и других каналов)

Ссылка для друга - https://t.me/+K4vJFdalwlthYTQy

Прислать задачи, реклама - @privatevoidmain
Download Telegram
Сбер стахование
//что будет выведено и почему?

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
Прислать задачу | Подписаться
👍6
какой-то банк (мб альфа или райф) #unknown

Есть таблица Person(name, age).
1. Написать запрос, который выведет имена и максимальный возраст для каждого имени
2. SQL вывести дубликаты по name+age
3.Реализовать метод List<Person> getTopAgeForName(List<Person> persons), который повторяет логику из первой задачи

Прислать задачу | Подписаться
1👍1
Сбер страхование
//что не так в таком 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
Прислать задачу | Подписаться
1👍1
Цифровые привычки (вроде на проект #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");
}
}
}

Прислать задачу | Подписаться
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥61
Сбер страхование

Какая сложность у этого цикла?
for (int i = 0; i < n; ++i) {
for (int j = 1; j < n; j *= 2) {
//something
}
}

#sber
Прислать задачу | Подписаться
1👍1
Яндекс

Написать без спринга и с юнитами (за час)
/*
Вы — backend-разработчик в финтех компании.
Компания предоставляет платежные услуги и должна контролировать лимиты пользователей.
Product owner просит создать систему проверки лимитов перед проведением платежей.

## Определения

Платеж:
- id пользователя
- сумма (в рублях с копейками)
- тип операции (только списание)
- время операции

Лимиты пользователя:
- суточный лимит по сумме (за 24 часа)
- максимальный размер одной операции

История операций:
- список совершенных платежей пользователя

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

## Задача
Написать систему проверки лимитов, которая:
- на вход получает платеж
- проверяет лимиты
- возвращает результат проверки: можно ли провести операцию
- если нельзя, то указывает причину (какой именно лимит будет превышен)

Проведение платежа не входит в вашу задачу - другая команда займется обработкой платежей после проверки.
Ваша задача - только проверка возможности проведения платежа.

## Ограничения
В рамках данной задачи считаем, что все платежи одного пользователя происходят строго последовательно.
Во время проверки лимита не может быть проведен платеж того же пользователя.
*/
class PaymentsChecker {


public ??? checkPayment(??? payment) {
Написать систему проверки лимитов, которая:
- на вход получает платеж
- проверяет лимиты
- возвращает результат проверки: можно ли провести операцию
- если нельзя, то указывает причину (какой именно лимит будет превышен)
// TODO implement
}
}

interface PaymentsHistoryService {

// TODO any functions
}

interface UserLimitsService {

// TODO any functions
}

#yandex
Прислать задачу | Подписаться
Media is too big
VIEW IN TELEGRAM
Всех с окончанием рабочей недели)
#fridaymemes
11😁6🤔1😢1💩1