Реальные задачи с собеседований | Java
3.53K subscribers
278 photos
36 videos
474 links
Буду сюда выкладывать реальные задачи и вопросы с собеседований, без копипаста с интернета и других каналов)

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

Прислать задачи, реклама - @privatevoidmain
Download Telegram
Реальные задачи с собеседований | Java
СБЕР 1. Написать простейший метод, который бы при работе бросил StackOverflowError. 2. Написать свой класс, который бы реализовывал стек, с методами push, pop, и peekMax, который бы возвращал max Элемент в стеке за О(1) 3. Этот метод переименовывает файл…
СБЕР (#repeat)

1.
* Дан массив целых чисел x длиной N.
* Массив упорядочен по возрастанию.
* Написать функцию, которая из этого массива
* получит массив квадратов чисел, упорядоченный по возрастанию.

2. Написать свой класс, который бы реализовывал стек, с методами push, pop, и peekMax, который бы возращал max Элемент в стеке за О(1)

3. Рефакторинг-
@Transactional
public void process(String oldName, String newName) {
Long id = exec("select id from file where name='" + oldName + "'"); //выполнение запроса к БД
exec("update file set name='" + newName + "' where id = " + id); //выполнение запроса к БД
processFile(oldName, newName); //переименование файла на диске

}


#sber | Подписаться
1👍81
Альфа-капитал #sql

Даны таблицы

mark
| ID | NAME |
|----|----------|
| 1 | Ford |
| 2 | Toyota |
| 3 | Bentley |

model
| ID | MARK_ID | MODEL_NAME |
|----|---------|------------|
| 1 | 1 | Explorer |
| 2 | 1 | Focus |
| 3 | 2 | Camry |
| 4 | 2 | Prado |
| 5 | 3 | Bentayaga |
| 6 | 3 | Continental|
| 7 | 2 | Auris |

Написать запросы для получения таких выборок

| NAME | NUMOFMODELS |
|----------|-------------|
| Ford | 2 |
| Toyota | 3 |
| Bentley | 2 |

и
| NAME | LISTOFMODELS |
|----------|-------------------------------|
| Bentley | Bentyaga; Continental |
| Ford | Explorer; Focus |
| Toyota | Camry; Prado; Auris |

#alfacapital | Подписаться
11👍1
Альфа-капитал

Написать спринговый контроллер, который принимает количество часов (0-12) и минут на часах, а возвращает количество градусов между часовой и минутной стрелкой.
Потом идут вопросы про MVC, паттерны, как улучшить код и т.д.


#alfacapital | Подписаться
1👍3🔥2
Иннотех

class Node{
Long id; // заполнен
Long parentId; // заполнен если есть parent
List<Node> children; // пустой
}

List<Node> treeList = getList();

// todo: заполнить children у всех элементов в листе

#innotech| Прислать задачу | Подписаться
1👍2
Астон

Вывести в алфавитном порядке всех авторов, которые пишут только в одном жанре.
#sql
#aston | Прислать задачу | Подписаться
1👍3
Infinite synergy

Что происходит в плане транзакций при вызове beginProcessing() ?

@Service
@RequiredArgsConstructor
public class ServiceA {
private final ServiceB serviceB;

@Scheduled(someCron)
public void beginProcessing() {
List<SomeObject> result = getCollectionOfSomeObjects(); // 1
for (SomeObject item : result) {
processSingleItem(item);
}
}

public void processSingleItem(SomeObject source) {
serviceB.updateSomeField(source, someValue);
}
}

Подписаться
1🤔2
Infinite synergy

Написать if корректно
class Instrument {
// Класс, представляющий инструмент
// ...

@Getter
boolean traded; // Поле, указывающее, является ли инструмент торгуемым
}

// ...

List<Instrument> instruments; // Список инструментов

// ...

if ( ) {
// Нужно выполнить этот код, если все инструменты в списке instruments торгуемые
}

Подписаться
1👍3
Лига цифорвой экономики

Сделать код-ревью

код по ссылке -
https://www.online-ide.com/bYjfG0kNzx
#digitalleague | Подписаться
2👍9
Infinite synergy

// Нужно найти логическую ошибку в коде (код собирается и работает, но неправильно)
public class InstrumentListingMapperDto {

private long orgId;
private String instrumentId;
private String remarkId;

public InstrumentListingMapperDto() {
}

public InstrumentListingMapperDto setOrgId(long orgId) {
this.orgId = orgId;
return this;
}

public InstrumentListingMapperDto setInstrumentId(String orgId) {
this.instrumentId = orgId;
return this;
}

public InstrumentListingMapperDto setRemarkId(String remarkId) {
this.remarkId = remarkId;
return this;
}
}

// ...

public List<InstrumentListingMapperDto> mapOrgIdToInstrumentAndRemarkIds() {
List<Long> orgIds = List.of(1L, 2L, 3L);
Map<Long, String> instrumentsMap = Map.of(1L, "instId1", 2L, "instId2", 3L, "instId3");
Map<Long, String> remarkIdMap = Map.of(1L, "remId1", 2L, "remId2", 3L, "remId3");

var instrumentListingMapperDto = new InstrumentListingMapperDto();

return orgIds.stream()
.map(id -> instrumentListingMapperDto
.setOrgId(id)
.setInstrumentId(instrumentsMap.get(id))
.setRemarkId(remarkIdMap.get(id)))
.toList();
}

Подписаться
3👍11
Infinite synergy #sql
EMPLOYEE

id: Integer - id сотрудника
name: Varchar - имя сотрудника
manager_id: Integer - id руководителя сотрудника
salary: Integer - зп сотрудника

Вывести список сотрудников, у которых зп > зп руководителя.

Подписаться
1👍5🥰1👏1🤔1
Exon

Сделать рефакторинг

public class RefEx {

public enum DocumentType {
XML, PDF, DOCX
}

public static class Document {
String id;
DocumentType type;
String content;
}

public static class DocumentService {
public void process(Document[] d) {
for (Document i : d) {
// Общая логика обработки документа
switch (i.type) {
case DocumentType.PDF: {
// Специфическая логика для обработки PDF
break;
}
case DocumentType.DOCX: {
// Специфическая логика для обработки Word
break;
}
case DocumentType.XML: {
// Специфическая логика для обработки XML
break;
}
}
}
}
}
}


#exon| Подписаться
1👍6
CSI (Кристалл Сервис Интеграция)

Что будет выведено на экран?

#csi | Подписаться
1🔥931
Реальные задачи с собеседований | Java
админ, когда мемы все еще набирают больше лайков, чем задачи:
если последняя задача наберет 20 огоньков, следующую задачу публикую уже сегодня
если нет - запощу мем😂

как вам такое?)
1😁32🔥2
Иннотех

// Ниже приведен код обновления статуса заказа.
// Необходимо найти проблемы и внести изменения в приведенный код.

@Service
public class OrderService {

@Autowired
private OrderRepository orderRepository;

private final NotificationService notificationService;

@Autowired
public OrderService(NotificationService notificationService) {
this.notificationService = notificationService;
}

public void updateOrderStatus(Long orderId, String newStatus) {
Order order = orderRepository.findById(orderId).get();

if (newStatus.equals("COMPLETED")) {
order.setStatus("COMPLETED");
orderRepository.save(order);
notificationService.notifyUser(order.getUserId(), "Your order is completed");
} else if (newStatus.equals("CANCELLED")) {
order.setStatus("CANCELLED");
orderRepository.save(order);
notificationService.notifyUser(order.getUserId(), "Your order is cancelled");
} else if (newStatus.equals("PENDING")) {
order.setStatus("PENDING");
orderRepository.save(order);
} else if (newStatus.equals("IN_PROGRESS")) {
order.setStatus("IN_PROGRESS");
orderRepository.save(order);
} else {
throw new IllegalArgumentException("Unsupported status: " + newStatus);
}
}
}

#innotech | Подписаться
1🔥12
Exon #sql

Даны таблицы
Customer
-id pk
-name
-address

Account
-id pk
-acc_number
-description
-customer_id fk

Fin_transaction
-id pk
-transactDate
-amount
-account_id fk
-description

У клиента может не быть лицевых счетов. По лицевому счету может не быть транзакций.

Необходимо написать SQL-запрос, возвращающий имя клиента, описание его лицевого счета и среднюю сумму транзакции по этому счету.


#exon| Подписаться
1👍5
Exon

Необходимо реализовать на Java метод, принимающий на вход коллекцию, в которой присутствуют строки, и удаляющий из переданной коллекции все строки, начинающиеся на "ааа". Сигнатура необходимого метода должна иметь вид:

public static void filterTripleA(Collection<String> strings);


#exon| Подписаться
1🔥2😱1