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

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

Прислать задачи, реклама - @privatevoidmain
Download Telegram
It one

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

код по ссылке -
online-java.com/2roPsn3xJG

#itone | Подписаться
50🔥4👍2😱21
It one

Есть бин, в нем транзакционный метод. Я хочу посчитать, сколько раз этот метод успешно выполнится в процессе работы. Добавляю счетчик и первой операцией в методе увеличиваю счетчик. (см комментарий)
Вопрос: в случае отката транзакции count будет откачен, или останется увеличенным?

class Bean {
private int count = 0;

@Transactional
public void method() {
count++;
// что-то делаем
// получаем exception
}
}

#itone | Подписаться
50👍1😁1😱1
Национальная Страховая Информационная Система (АО «НСИС»)

/*
Манипулятор находится в исходной точке и умеет перемещаться
вперед
назад
вправо
влево

На вход манипулятора подается случайная строка, содержащая односимвольные токены-команды.
Манипулятор последовательно обрабатывает токены, выполняя соответствующие им команды. После обработки всех токенов
манипулятор останавливается.

Манипулятор поддерживает 4 варианта токенов 'U' 'D' 'R' 'L' соответствующих направлениям перемещения.
Внутри строки токены не разделены.

Написать функцию, получающую на вход строку токенов и определяющую находится ли манипулятор в исходной точке после остановки.

UURLLLRUDDRD...
*/

Подписаться
51🔥5
Вконтакте

/**
* Дан список интов - только положительные и 0, повторяющихся элементов в списке нет.
* Нужно преобразовать это множество в строку, сворачивая соседние по числовому ряду числа в диапазоны.
*
* Примеры:
* [1,4,5,2,3,9,8,11,0] => "0-5,8-9,11"
* [1,4,3,2] => "1-4"
* [1,4] => "1,4"
*/
public String compress(int[] array) {
return "";
}


#vk | Подписаться
1👍8
Вконтакте

Нам дана функция которая оценивает релевантность документа пользователю
interface Scorer<Document, User> {
double getScore(Document doc, User user);
}


Необходимо реализовать сервис который может сохранять документ и получать топ К (limit) документов для пользователя по скору этой функции

interface RecommenderService<Document, User> {
List<Document> getTop(User user, int limit);

void addDocument(Document document);
}

#vk | Подписаться
👍2
Cбер девайсы

Необходимо реализовать следующий класс:

public class SuperIterator implements Iterator<String> {

public SuperIterator(Object... iterators) {

....

}

}
Объекты в конструкторе могут быть либо String, либо Iterator<String>, либо Iterator<Iterator<String>> обобщить до любой вложенности итераторов

пример:

var it0 = Collections.<String>emptyList().iterator();
var it1 = Arrays.asList("1", "2", "3").iterator();
String it2 = "4";
var it3 = Arrays.asList(
Arrays.asList("5").iterator(),
Arrays.asList("6", "7").iterator()).iterator();
var it = new SuperIterator(it1, it2, it0, it3);
while (it.hasNext()) {
System.out.println(it.next());
}
}
должен вывести 1,2,3,4,5,6,7 каждое с новой строки

#sber | Подписаться | Прислать задачу
🔥3🤯3🤔1
Лига цифровой экономики

/**
* Дан массив целых чисел. Необходимо вернуть индексы тех элементов, которые в сумме дадут заданное число.
* Входные данные всегда имеют решение и оно единственное.
*/

// [0, 2, 3, 4], 7 => [2, 3]
// [0, 2, 3, 7], 7 => [0, 3]

#digitalleague | Подписаться
😁5👍4😱1
Авангард

/*
Explanation:
There is no string in strs that can be rearranged to form "bat".
The strings "nat" and "tan" are anagrams as they can be rearranged to form each other.
The strings "ate", "eat", and "tea" are anagrams as they can be rearranged to form each other.

Example 2:
Input: strs = [""]
Output: [[""]]

Example 3:
Input: strs = ["a"]
Output: [["a"]]
*/

class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
// Your solution goes here
}
}


#avangard | Подписаться
🔥4👍2
Тинькоф #sql

Вывести посты, у авторов которых больше 500 подписчиков
CREATE TABLE profile (
id BIGSERIAL PRIMARY KEY,
nickname VARCHAR,
registered_at TIMESTAMP
);

CREATE TABLE post (
id BIGSERIAL PRIMARY KEY,
owner_id BIGINT REFERENCES profile (id),
body TEXT,
inserted_at TIMESTAMP,
likes_count INT -- кол-во лайков
);

CREATE TABLE subscription_count (
profile_id BIGINT REFERENCES profile (id) UNIQUE,
followers_count INT, -- кол-во подписчиков
following_count INT -- кол-во подписок
);

#tbank | Подписаться
👍5
Реальные задачи с собеседований | Java
Админ ждет новые задачи от подписчиков: ____ Присылайте ваши задачи с собесов мне в личку - @privatevoidmain 🤝
Всем привет. куплю свежие записи собеседований. у кого есть, напишите плиз в личку t.me/privatevoidmain
(цена, компания, вилка, когда был собес, и если есть ссылку на вакансию)
Реальные задачи с собеседований | Java
Всем привет. куплю свежие записи собеседований. у кого есть, напишите плиз в личку t.me/privatevoidmain (цена, компания, вилка, когда был собес, и если есть ссылку на вакансию)
До чево довели админа? вы довольны?

ладно, шучу, записи нужны не для задач, а для другого - готовлю мощный курс по подготовке к собесам
ставьте 🔥, если вам это было бы актуально
🔥49😁5👎21
Яндекс

Реализовать функцию OneEditApart, которая проверяет, можно ли привести одну строку к другой не более чем за одно исправление (удаление, добавление или изменение символа).
OneEditApart("cat", "dog") -> false
OneEditApart("cat", "cats") -> true
OneEditApart("cat", "cut") -> true
OneEditApart("cat", "cast") -> true
OneEditApart("cat", "at") -> true
OneEditApart("cat", "acts") -> false


#yandex | Подписаться
👍5
Яндекс

На вход дается массив целых чисел и число x. Найти под-отрезок (любой), сумма элементов которого равняется x. Вывести границы этого отрезка или пустой массив если это невозможно.

Тест кейс: [5,1,2,1], x=4 -> (1,3) // 1+2+1 = 4

#yandex | Подписаться
👍2🔥1
Axbit Group

В модели существует некоторый enum:

public enum AccountType {
TYPE_ONE,
TYPE_INO
}

который используется для указания типа в какой-то сущности, как:

@Enumerated
private AccountType accountType;

Была поставлена задача добавить новый тип в перечисление TYPE_ONE_AND_HALF, что и было сделано:

public enum AccountType {
TYPE_ONE_AND_HALF,
TYPE_ONE,
TYPE_INO
}

Корректно ли данное решение и какие могут быть проблемы при такой реализации?

Подписаться
👍3😱1
Axbit Group

@Service
@RequiredArgsConstructor
public class DocumentProcessService {

private final DocumentRepo repo;

@Async
@Transactional
void revokeDocument(List<Document> docs) {
List<Integer> id_list = docs.stream().map(Document::getId).collect(Collectors.toList());
List<Document> list = repo.findAllById(id_list);

Optional<Document> doc = Optional.empty();
for (int i = 0; i < list.size(); i++) {
Integer statusId = list.get(i).getStatusId();
if (statusId == 4) {
doc = Optional.of(list.get(i));
break;
}
}

if (doc.isPresent()) return;

System.out.println("Processing document id: " + doc.get().getId());

int processed = process(doc.get());

if (processed == 1) {
// Сохраняем документ, если он был обработан
repo.save(doc.get());
}
}

@Transactional(propagation = Propagation.REQUIRES_NEW)
public int process(Document doc) {
Integer result = 0;
doc.getAssistants().forEach(a -> a.setFullName("dismissed"));
// some logic:
// if document is processed returns 1, else 0
return result;
}
}

Подписаться
👍2
Axbit Group
Есть модель данных, состоящая из 2 структур.

Что в данной реализации можно сделать иначе и почему? Какие потенциальные проблемы могут быть при такой модели?

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

Какие цифры можно добавить? Все ли правильно написано?
List<? extends Number> nums = new ArrayList<>();
nums.add(1);
nums.add(2.1);
nums.add(33L);

#digitalleague | Подписаться
👍5
Лига цифровой экономики
Что будет выведено на экран?

код - online-ide.com/ITQZrHjksO
#digitalleague | Подписаться