Тбанк
#tbank
Прислать задачу | Подписаться
// Необходимо написать функцию, которая получает строку с абсолютным UNIX-путем и возвращает укороченную версию, удаляя все ненужное:
// Input: "/foo/../test/../foo//bar/./baz"
// Output: "/foo/bar/baz"
// Обозначения:
// .. - возврат на директорию выше
// . - текущая директория (по сути, просто мусор)
// // - просто мусор
// Вне корневой директории выйти нельзя
#tbank
Прислать задачу | Подписаться
Конец года - самое время подводить итоги. Скоро запилю серию опросов, как у вас прошел 2025 (кого сократили, кто вкатился и т.п.)
пишите в комменты, какие еще опросы запостить
👍4💩4❤1🤔1
кто вкатился в айти в 2025, какую зп залутали?
Anonymous Poll
3%
меньше 50
5%
50-100
7%
100-200
8%
200-300
3%
300-400
3%
больше 400
11%
не смог вкатиться
57%
посмотреть результат
5%
.
💩5❤2👏1
Please open Telegram to view this post
VIEW IN TELEGRAM
😢5🔥2❤1
На сколько выросла ваша зарплата внутри одной компании за 2025 год?
Anonymous Poll
12%
Менял работу/устроился в 2025
25%
Не выросла
7%
меньше 20
18%
20-50
7%
50-100
1%
100-150
2%
больше 150
12%
не работаю
15%
.
😢8🔥2
На сколько снизилась ваша зарплата в 2025 году внутри одной компании?
Anonymous Poll
32%
Зарплата выросла
30%
Зарплата не изменилась
2%
до 20 т.р
2%
20-50 т.р.
1%
50-100
1%
100-150
1%
больше 150
14%
не работаю
19%
.
😁6❤1👏1😢1
Сбер
Ревью
#sber
Прислать задачу | Подписаться
Ревью
class CodeProcessor {
public void process(List<Code> codes) {
for (Code code : codes) {
if (CodeType.ITCP == code.getCodeType()) {
doSmthngITCP();
}
else if (CodeType.TLS == code.getCodeType()) {
doSmthngTLS();
}
else if (CodeType.OTHER == code.getCodeType()) {
doSmthngOther();
}
else {
doDefault();
}
}
}
private void doSmthngITCP() {
System.out.println("Handling ITCP");
}
private void doSmthngTLS() {
System.out.println("Handling TLS");
}
private void doSmthngOther() {
System.out.println("Handling Other");
}
private void doDefault() {
System.out.println("Handling Default Case");
}
}
enum CodeType {
ITCP, TLS, OTHER
}
class Code {
private final CodeType codeType;
public Code(CodeType codeType) {
this.codeType = codeType;
}
public CodeType getCodeType() {
return codeType;
}
}
public class CodeProcessingApp {
public static void main(String[] args) {
List<Code> codes = Arrays.asList(
new Code(CodeType.ITCP),
new Code(CodeType.TLS),
new Code(CodeType.OTHER)
);
CodeProcessor processor = new CodeProcessor();
processor.process(codes);
}
}
#sber
Прислать задачу | Подписаться
👍5
Тбанк
#tbank #repeat
Прислать задачу | Подписаться
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
//Отработает ли CountDownLatch нужное количество раз?
public class Increment {
private static int counter1 = 0;
private static int counter2 = 0;
Lock lock = new ReentranLock();
public static void main(String[] args) throws InterruptedException {
int tasksCount = 100_000;
CountDownLatch latch = new CountDownLatch(tasksCount);
ExecutorService executor = Executors.newFixedThreadPool(100);
for (int i = 0; i < tasksCount; i++) {
executor.submit(() -> {
counter1++;
counter2++;
latch.countDown();
});
}
latch.await();
//сколько будет выведено?
System.out.println(counter1);
System.out.println(counter2);
System.exit(0);
}
}
#tbank #repeat
Прислать задачу | Подписаться
👍2😱1
Газпромбанк
Сделать ревью
#gazprombank
Прислать задачу | Подписаться
Сделать ревью
/**
* Метод работает не всегда корректно.
* Как его можно отрефакторить или переписать, и как проверить, что ничего не сломалось?
*
* Метод возвращает индекс элемента в последовательности чисел, который соответствует дубликату.
*
* @param numbers
* @return
*
* 1,2,3,4,4,5,6
* 4
*
*/
public int findDuplicateIndex(int... numbers) {
int[] countArray = new int[nubmers.length];
for (int i = 0; i < numbers.length; i++) {
int current = numbers[i];
if (countArray[current] > 0) {
return i;
} else {
countArray[current] += 1;
}
}
throw new CustomException("Duplicate not found!");
}
#gazprombank
Прислать задачу | Подписаться
👍4❤2
Газпромбанк
Из исходного списка стран получить страну у которой будет максимальное значение отношения популяции к площади
#gazprombank
Прислать задачу | Подписаться
Из исходного списка стран получить страну у которой будет максимальное значение отношения популяции к площади
import java.util.*;
class Scratch {
public static void main(String[] args) {
List<Country> countries = Arrays.asList(new Country("country_1", 100, 5000),
new Country("country_2", 9000, 500000),
new Country("country_8", 6527, 6324687),
new Country("country_11", 872321, 765237),
new Country("country_9", 823743, 63543762),
new Country("country_3", 800, 40000));
Country c = getTheBiggestCountry(countries);
System.out.println(c);
}
public static Country getTheBiggestCountry(List<Country> countries) {
// из исходного списка стран получить страну у которой будет максимальное значение отношения популяции к площади
return null;
}
static class Country {
public final String name;
public final double area;
public final long population;
public String getName() {
return name;
}
public double getArea() {
return area;
}
public long getPopulation() {
return population;
}
public Country(String name, double area, long population) {
this.name = name;
this.area = area;
this.population = population;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Country)) {
return false;
}
Country country = (Country) o;
return Double.compare(country.area, area) == 0 && population == country.population && name.equals(country.name);
}
@Override
public int hashCode() {
return Objects.hash(name, area, population);
}
@Override
public String toString() {
return "Country{" +
"name='" + name + '\'' +
", area=" + area +
", population=" + population +
'}';
}
}
}
#gazprombank
Прислать задачу | Подписаться
❤2👍2
Яндекс #repeat
#yandex
Прислать задачу | Подписаться
Вы — backend-разработчик в интернет-магазине.
Дела идут в гору и магазин решил повысить лояльность покупателей, предоставляя им персональные скидки.
К вам обратился product owner с задачей создать простую систему лояльности, которая предоставляет процентную скидку на корзину.
Размер скидки зависит от покупателя.
Аналитики уже определили, какие скидки должны быть предоставлены покупателям.
## Определения
Корзина - список покупок покупателя.
Покупка:
- id товара
- цена
- итоговая стоимость c учетом скидки
## Задача
Написать часть новой системы лояльности, которая применяет скидку покупателя к корзине.
- на вход получает id покупателя и корзину
- вычисляет и применяет скидки
- возвращает корзину, в которой учтены скидки
- все расчёты в рублях, точность до копеек. Округления по математическим правилам
Есть два вида скидки (не могут прийти одновременно):
- процент от суммы корзины
- фиксированная скидка
Сумма скидки распределяется равномерно между товарами, пропорционально цене товара.
Примеры:
- скидка 50%, в корзине товары на 50р и 100р. Скидка 25р и 50р
- скидка 10р, в корзине товары на 20р и 30р. Скидка 4р и 6р
- скидка 10р, в корзине товары на 1р и 99р. Скидка 10коп и 9р 90коп
#yandex
Прислать задачу | Подписаться
❤3
Яндекс
#yandex
Прислать задачу | Подписаться
Компания предоставляет сервис массовой рассылки уведомлений для других бизнесов.
К вам обратился product owner с задачей создать систему фильтрации уведомлений с учетом предпочтений пользователей.
## Определения
Уведомление:
- id уведомления
- тип уведомления (EMAIL, SMS, PUSH)
- получатель (id пользователя)
- текст сообщения
Получатель может иметь настройки предпочтений:
- разрешенные каналы уведомлений (список типов)
- заблокированные отправители (список id отправителей)
История отправленных уведомлений:
- список уведомлений, отправленных пользователю
## Важно
Настройки пользователей и история уведомлений предоставляются другими компонентами системы.
Вам необходимо спроектировать контракты для получения этих данных.
Реализацию хранения делать не нужно.
## Задача
Написать систему фильтрации уведомлений, которая:
- на вход получает список уведомлений для фильтрации и id отправителя
- исключает уведомления, не соответствующие предпочтениям получателя
- предотвращает повторную отправку: если уведомление с таким же id уже было отправлено конкретному пользователю за последние 24 часа,
оно не должно быть отправлено снова (защита от дублирования)
- возвращает отфильтрованный список уведомлений, готовых к отправке.
Отправка уведомлений не входит в вашу задачу - другая команда займется отправкой отфильтрованного списка.
Ваша задача - только фильтрация.
#yandex
Прислать задачу | Подписаться
❤5
BetweenExchange
1/ Классическая задача про скобки и стек
2/ Реализовать функцию, которая вычисляет значение арифметического выражения
Допустимые операторы: +, -, *, /
Прислать задачу | Подписаться
1/ Классическая задача про скобки и стек
2/ Реализовать функцию, которая вычисляет значение арифметического выражения
Допустимые операторы: +, -, *, /
["2", "1", "+", "3", "*"] = 9
["4", "13", "5", "/", "+"] =6
["2", "+"] = error
["5", "0", "/"] = error
тут уточнили, что это польская обратная запись🤨
Прислать задачу | Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
BetweenExchange
Реализуйте класс CustomLinkedList, который будет работать по принципу очереди (FIFO - First In, First Out). методы push() и pop()
Прислать задачу | Подписаться
Реализуйте класс CustomLinkedList, который будет работать по принципу очереди (FIFO - First In, First Out). методы push() и pop()
public class CustomLinkedList<T> {
// Push - добавление нового элемента
public void push(T data) {
}
// Pop - Удаляет и возвращает элемент из очереди
public T pop() {
}
class Node<T> {
}
Прислать задачу | Подписаться
💩6🤔3
Газпромбанк
Сделать ревью
#gazprombank
Прислать задачу | Подписаться
Сделать ревью
public class Parser {
File file;
public synchronized void setFile(File file) {
this.file = file;
}
public synchronized File getFile() {
return file;
}
public String getContent() throws IOException {
InputStream i = new FileInputStream(file);
String output = "";
int data;
while ((data = i.read()) > 0) {
output += (char) data;
}
return output;
}
public String getContentWithoutUnicode() throws IOException {
InputStream i = new FileInputStream(file);
String output = "";
int data;
while ((data = i.read()) > 0) {
if (data < 0x80) {
output += (char) data;
}
}
return output;
}
public void saveContent(String content) throws IOException {
OutputStream o = new FileOutputStream(file);
for (int i = 0; i < content.length(); i +=1) {
o.write(content.charAt(i));
}
}
}
#gazprombank
Прислать задачу | Подписаться
❤5
Сбер
Задача на подсчет частоты чисел (Доп задание, отсортировать по значениям)
#sber
Прислать задачу | Подписаться
Задача на подсчет частоты чисел (Доп задание, отсортировать по значениям)
public static void main(String[] args) {
List<Integer> list = List.of(1, 2, 3, 1, null, 2, 1, null, 3);
System.out.println("Частоты: " + countNumberFrequency(list));
}
//Java 8
public static Map<Integer, Integer> countNumberFrequency(List<Integer> numbers) {
// todo
return null;
}
#sber
Прислать задачу | Подписаться
ВТБ #sql
#vtb
Прислать задачу | Подписаться
Доменная модель компании ООО "Рога и копыта” представлена таблицами Department и Employee.
Необходимо вывести список сотрудников (id, name), которые получают максимальную ЗП в своем отделе.
Department
===
id
name
Employee
===
id
department_id
name
salary
#vtb
Прислать задачу | Подписаться
Сбер
#sber
Прислать задачу | Подписаться
Написать метод, который принимает массив целых чисел и число target и возвращает элемент, наиболее близкий к target по модулю
#sber
Прислать задачу | Подписаться
🤔5