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

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

Прислать задачи, реклама - @privatevoidmain
Download Telegram
Unknown company #sql

Написать запрос для вывода имен пользователей с более чем одним автомобилем

User
| id | name |
|-----|---------|
| 5 | Ivan |
| 8 | Petr |
| 7 | Anna |
| 9 | Alexandr|
| 3 | Ivan |

Car
| id | model | user_id |
|------|---------------|---------|
| 4522 | BMW X5 | 5 |
| 1330 | Mercedes C200 | 8 |
| 2204 | Volvo A1 | 8 |
| 4547 | BMW X1 | 9 |
| 5117 | Volvo A1 | 3 |
| 3245 | Opel D3 | 8 |
| 5798 | Ford Focus 7 | 7 |

#unknown | Подписаться
👍3
IGA Technologies

// Необходимо написать метод на Java, который принимает массив объектов типа Entry и преобразует его в строку по следующим правилам:
// 1) каждый объект приводится к следующей строке "${name}: ${title}"
// 2) формируем строку из этих строк, разделенных символом \n

class Entry {
private final String name;
private final String title;

public Entry(String n, String t) {
this.name = n;
this.title = t;
}

public String getName() {
return name;
}

public String getTitle() {
return title;
}
}

// Пример входных данных
var data = List.of(
new Entry("x", "1"),
new Entry("y", "2"),
new Entry("z", "3")
);

// Пример результата
var template = "x: 1\ny: 2\nz: 3";


#iga | Подписаться
50🔥3
ВТБ

Найти активных клиентов (status счета = open), у которых на открытых счетах больше 10000

CREATE TABLE clients
(
client_id int primary key,
name varchar(100),
manager varchar(255)
);

CREATE TABLE accounts
(
account_id int primary key,
client_id int,
account_number varchar(255),
balance decimal(10, 2),
status varchar(10),
foreign key (client_id) references clients (client_id)
);



#vtb | Подписаться
50👏2
Unknown company

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

#unknown | Подписаться
50👍21
Реальные задачи с собеседований | Java
.
единственные задачи, которыми все довольны - это на знание sql)
50😁22👏1
IGA Technologies (не точно)

// Что в результате?

List<String> l = new LinkedList<>();
l.add("first");
l.add("second");
l.add("last");

Stream<String> s0 = l.stream();
Stream<String> s1 = s0.filter(Objects::nonNull);
Stream<String> s2 = s1.map(String::toUpperCase);
List<String> result = s2.collect(Collectors.toList());


#iga | Подписаться
50
Элест

Даны таблицы -
DEVICES
-id
-name
-object

EVENTS
-id
-device_id
-type

Вывести таблицу (name, count_of_events) с именами приборов и количеством событий для каждого прибора, где объект = школа.


#sql | Подписаться
50👍2
Элест

Что-то про transactional спрашивали

Подписаться
50😁17👎2👍1
Lighthouse

public static class ProfileInfo {
public UserInfo userInfo;
public CompanyInfo companyInfo;
}

public static class UserInfo {
public String name;
public String age;
}

public static class CompanyInfo {
public String id;
public String companyName;
}

// методы

//метод должен выполниться за 1 секунду
public ProfileInfo getProfileInfo(Long id) {
// TODO необходимо написать реализацию
}

private UserInfo getUserInfo(Long id) {
// вызов внешнего сервиса занимает ~ 1 секунду
}

private CompanyInfo getCompanyInfo(Long id) {
// вызов внешнего сервиса занимает ~ 1 секунду
}

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

/*
Реализация CustomHashMap должна создаваться и применяться следующим образом:
CustomHashMap obj = new CustomHashMap();
obj.put(key,value);
int param_2 = obj.get(key);
obj.remove(key);
*/

#digitalleague | Подписаться
50🤷‍♂2👍2
СБЕР

//Дан массив чисел, в котором все числа кроме одного имеют пару (встречаются дважды). Найти число, которое встречается только один раз.

// <= [1, 0, 3, -2, 9, 9, 1, -2, 0]
// => 3

int find(int[] arr) {}

// null или пустой массив -> выбросить RuntimeException.
// Более 1 числа без пары -> выбросить RuntimeException.
// Нет числа, которое встречается единожды -> выбросить RuntimeException.
// Какое-либо из чисел встречается более 2-x раз -> выбросить RuntimeException.

#sber | Подписаться
50🔥9👍1
Lighthouse

static public class Profile {
public Long id;
public Long organizationId;
public Long groupId;
}

public Map<Long, Map<Long, List<Profile>>> groupByOrgIdAndGroupId(List<Profile> data) {
}


// Пример:

[1, 0, 1]
[2, 0, 1]
[3, 0, 2]
[4, 1, 1]
[5, 1, 2]

Result:
{
"0": {
"1" : [{1..}, {2..}],
"2" : [{3..}],
}
"1": {
"1" : [{4..}],
"2" : [{5..}]
}
}


В первой Map должен быть ключ organizationId, значение Map в которой ключ groupId а значение List<Profile>

Подписаться
50👍61😱1
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