Реальные задачи с собеседований | Java
Ir al canal en Telegram
Буду сюда выкладывать реальные задачи и вопросы с собеседований, без копипаста с интернета и других каналов) Ссылка для друга - https://t.me/+K4vJFdalwlthYTQy Прислать задачи, реклама - @privatevoidmain
Mostrar más4 358
Suscriptores
+124 horas
+87 días
+1430 días
Archivo de publicaciones
Яндекс
2. // Например, даны два массива // [1, 2, 3, 2, 0] // [5, 1, 2, 7, 3, 2] // Надо вернуть [1, 2, 2, 3] // (порядок неважен)#yandex | Прислать задачу | Подписаться
Яндекс
1. // Дана строка, состоящая из букв 'X', 'Y' и 'O'. // Необходимо найти кратчайшее расстояние между буквами 'X' и 'Y', либо вывести 0, если 'X' либо 'Y' отсутствуют. // Примеры: // "YY" -> 0 // "XX" -> 0 // "XY" -> 1 // "YOX" -> 2 // "OOOXOOYOXO" -> 2 // "OOOXXOY"-> 2#yandex | Прислать задачу | Подписаться
Сбер
public class Test { public static void main(String[] args) { int[] num = {1, 4, 5, 88, 100}; int res = calculate(num); System.out.println("AVG:" + res); } public static int calculate(int[] num) { int sum = 0; for (int i = 0; i <= num.length; i++) { sum += num[i]; } return sum; } }#sber | Прислать задачу | Подписаться
Открытые решения (вроде #repeat)
Что будет выведено на экран?
public class Predicate { public static void main(String... args) { int i = 5; i = i++ + ++i; System.out.println(i); } }#opensolution | Подписаться
Россельхозбанк
Есть две таблицы счета и операции по счетам account(account_id, create_dt, client_id, status, balance) transaction (transaction_id, create_dt, status, amount, account_id) Найти все счета по которым не было операций с первого января 2025 года#rshb | Прислать задачу | Подписаться
СБЕР
@Service @RequiredArgsConstructor @Sl4j class ProductServiceImpl implements ProductService { private final ProductRepository repository; private OtherService otherService; private Map<String, String> dictionary; @PostConstruct @Transactional public void postConstruct(){ dictionary = otherService.getDictionary(); } @Autowired public void setOtherService(OtherService otherService) { this.otherService = otherService; } /** Метод возвращает список обработанных Продуктов * * @param productIds * @return */ @Transactional public List<ProductProcessResult> processProducts(List<Long> productIds){ productIds.stream().map(productIds.mapToObject) //TODO } @Transactional public Product getProduct(Long id){ if(id == null){ throw new UnsupportedOperationException("Не поддерживается"); } return repository.findById(id); } public ProductProcessResult process(Product product) throws IOException if(product.getProductStatus() == PROCESSED){ throw new IOException("нельзя обрабатывать продукт в состоянии PROCESSED"); } otherService.process(product); product.setProductState(PROCESSED); return product; } } @Getter @HashcodeAndEquals public class Product { enum ProductStatus{ NEW, PROCESSED } private int id; private ProductStatus productStatus; private String name; private Double price; private List<String> tags; Product(int id, ProductStatus productStatus, String name, Double price, List<String> tags){ this.id = id; this.productStatus = productStatus; this.name = name; this.price = price; this.tags = tags; } }#sber | Прислать задачу | Подписаться
Авито
Напишите функцию генерирующую все возможные правильные скобочные последовательности из n пар скобок.
#avito | Подписаться
Авито (#repeat)
Мы в Авито любим проводить соревнования, — недавно мы устроили чемпионат по шагам. И вот настало время подводить итоги! Необходимо определить userIds участников, которые прошли наибольшее количество шагов steps за все дни, не пропустив ни одного дня соревнований. Пример # Пример 1 # ввод statistics = [ [{ userId: 1, steps: 1000 }, { userId: 2, steps: 1500 }], [{ userId: 2, steps: 1000 }] ] # вывод champions = { userIds: [2], steps: 2500 } # Пример 2 statistics = [ [{ userId: 1, steps: 2000 }, { userId: 2, steps: 1500 }], [{ userId: 2, steps: 4000 }, { userId: 1, steps: 3500 }] ] # вывод champions = { userIds: [1, 2], steps: 5500 }#avito | Подписаться
IT ONE (#repeat)
public class Main {
//Найти первый неповторяющийся элемент в массиве целых чисел
public static void main(String[] args) {
int[] arr = {9, 4, 9, 6, 7, 4, 5};
int[] arr2 = {9, 4, 9, 6, 6, 4, 5};
System.out.println(nonRepeatable(arr)); //6
System.out.println(nonRepeatable(arr2)); // 5
}
#itoneЛига цифровой экономики #repeat
Найти первый неповторяющийся элемент
int[] arr = {9, 4, 9, 9, -1, 0, 6, 7, 4, 5, -1, 0};
#digitalleague | ПодписатьсяВКонтакте
// Нужно написать функцию, которая принимает на вход строку,
// а на выходе возвращает для каждого уникального символа максимальное число его
// беспрерывных повторений.
// Input: aafbaaaaffc
// Output: a:4 b:1 f:2 c:1
class Solution {
public String solve(String input) {
}
}
#vk | ПодписатьсяАстон
Получить из листа students лист books
public class Student {
private String name;
private List<Book> books;
}
List<Student> students;
List<Book> books =
#aston | Прислать задачу | ПодписатьсяОткрытые решения (#repeat)
Что будет выведено на экран?
#opensolution | Подписаться
Тинькоф
/**
* API поиска авторов и их книг по имени автора (полное ФИО или часть имени в любом регистре).
* Также компонент при каждом поиске обновляет статистику по частоте использования поисковой строки (сбрасывается раз в сутки другой системой)
* При обнаружении популярного запроса (> 1000 запросов в сутки), по которому находится много авторов, отправляется алерт.
* Алерт должен отправляться не более 1 раза за сутки для каждого запроса
* Все классы на самом деле находятся в разных файлах, однако здесь представлены в одном месте для удобства
*/
@RestController
public class AuthorController {
@Autowired
private AuthorSearchService service;
@GetMapping("/authors")
public List<AuthorDto> readAllAuthors(@RequestParam String query) {
List<Author> authors = service.search(query);
return authors.stream().map(el -> {
return new Mapper().map(el);
}).collect(Collectors.toList());
}
}
@Component
public class AuthorSearchService {
@Autowired
private AuthorsRepository authorsRepository;
@Autowired
private StatisticsRepository statisticsRepository;
private AlertRestClient arc = new AlertRestClient();
// В query может быть как полностью ФИО, так и часть имени, например "Вадим Панов" или "панов"
@Transactional
public List<Author> search(String query) {
List<Author> authors = authorsRepository.findByNameContainingIgnoreCase(query);
Statistics s = statisticsRepository.findById(query).orElse(null);
if (s == null) s = new Statistics(query);
s.setNumbers(s.getNumbers() + 1);
statisticsRepository.save(s);
if (s.getNumbers() > 1000 && authors.size() > 1000) {
System.out.println("too popular search with too much data, sending an alert...");
arc.send(query, s.getNumbers(), authors.size());
}
return authors;
}
}
@Entity
@Data
public class Author {
@Id
@GeneratedValue
private Long id;
private String name;
@OneToMany(mappedBy = "author")
private List<Book> books;
public Author(String name) {
this.name = name;
}
}
@Entity
@Data
public class Statistics {
@Id
private String query;
private int numbers;
public Statistics(String query) {
this.query = query;
}
}
@Data
public class AuthorDto {
private Long id;
private String name;
private List<Book> books;
}
@Entity
@Data
public class Book {
private Long id;
private String name;
}
#tbank | Подписаться
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
