ch
Feedback
Реальные задачи с собеседований | Java

Реальные задачи с собеседований | Java

前往频道在 Telegram

Буду сюда выкладывать реальные задачи и вопросы с собеседований, без копипаста с интернета и других каналов) Ссылка для друга - https://t.me/+K4vJFdalwlthYTQy Прислать задачи, реклама - @privatevoidmain

显示更多
4 354
订阅者
+124 小时
+87
+1430
帖子存档
Сбер #sql #repeat?
-- Две таблицы -- Company: id, title, sector -- Vacancy: id, id_company, name, salary -- Написать запрос, который выведет список компаний из отрасли IT, -- со средним доходом по вакансиям, названия которых содержат слово Java, более $1000
#sber| Прислать задачу | Подписаться

KVANDO Technologies
Напишите функцию, которая принимает на вход словарь, содержащий ключи и значения, и возвращает список всех пар "ключ-значение". Если значение является вложенным словарем, функция должна рекурсивно извлекать ключи и значения из него. Вход: data = {'a': 1, 'b': {'c': 2, 'd': {'e': 3}}, 'f': 4} Выход: [('a', 1), ('с', 2), ('e', 3), ('f', 4)]
Подписаться

если есть старые, тоже присылайте)

Очень мало задач😏
Очень мало задач😏

Инсайрес
Задача 2
Требования:
Создать консольное приложение со следующей функциональностью:
- предлагает ввести размер массива сообщением "введите размер массива:"
- инициализирует целочисленный массив с заданным размером случайными значениями
- выводит массив в консоль с заголовком "инициализированный массив:"
- сортирует массив от меньшего к большему методом пузырька
- выводит массив в консоль с заголовком "отсортированный массив:"
Требование к коду:
- код должен соответствовать принципу единой ответственности

Задание: 
- уточнить требования если необходимо
- оценить время выполнения задания
- написать и продемонстрировать код

ВК
/* * Есть список событий, у которых в наличии поля с id этого события, временем старта события и временем завершения события. * Нужно составить алгоритм выяснения, есть ли среди этих событий конфликтующие, то есть интервалы времени которых пересекаются. * Если время старта одного события совпадает со временем окончания другого, то такие события будем считать пересекающимися. * Примеры: * * Input: [{id="1", startTime=1, endTime=5}, {id="2", startTime=4, endTime=7}] * Output: true * * Input: [{id="1", startTime=1, endTime=5}, {id="2", startTime=7, endTime=9}, {id="3", startTime=4, endTime=7}] * Output: true * * Input: [{id="1", startTime=1, endTime=5}, {id="2", startTime=6, endTime=7}] * Output: false * * Input: [] * Output: false */ public class ConflictFinder { public boolean findConflicts(List<Event> events) { return false; // TODO } public static class Event { private final String id; private final long startTime; private final long endTime; public Event(String id, long startTime, long endTime) { this.id = id; this.startTime = startTime; this.endTime = endTime; } public String getId() { return id; } public long getStartTime() { return startTime; } public long getEndTime() { return endTime; } } }
#vk| Подписаться

Инсайрес
Задача 1
Требования: 
есть 2 связанные таблицы 
1) таблица User; поля Id, Name; 
2) таблица UserTask; поля Id, UserId, Name
Задание:
написать SQL запрос который вернет в обратном алфавитном порядке имена всех пользователей у которых более 5 задач
Условия:
без вложенных селектов

Яндекс * Дан массив целых чисел, нужно найти непустой подотрезок (непрерывную подпоследовательность) с заданной суммой target, либо сказать, что это невозможно. findTarget([9, -6, 5, 1, 4, -2], 10) -> (2, 4) (-1, -1) если такого нет * #yandex | Прислать задачу | Подписаться

#удаленка Всех с окончанием рабочей недели) #fridaymemes

СБЕР Сделать рефакторинг кода
@Transactional
 public void process(String oldName, String newName) { 
     Long id = exec("select id from file where name='" + oldName + "'"); //выполнение запроса к БД 
     insert 
     processFile(oldName, newName); //переименование файла на диске
exec("update file set name='" + newName + "' where id = " + id);  
 }
#sber| Прислать задачу | Подписаться

Магнит Сделать рефакторинг
import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import java.util.logging.Logger; public final class Cat4 { private static final int jumpsCount = 0; private final DataSource dataSource; private final String name; public Cat4(String name, DataSource dataSource) { this.name = name; this.dataSource = dataSource; } public void doJumps(int jumpsCount) { for (int i = 0; i < jumpsCount; i++) { new Thread(new Runnable() { public void run() { doJump(); } }).start(); } } public void doJump() { jumpsCount++; Logger.getLogger(Cat4.class.getName()).fine("Jump!"); } public void doMeow() { Logger.getLogger(Cat4.class.getName()).fine("Meow!"); } public void doQuery(byte[] parameters) throws SQLException { Connection conn = null; Statement stmt = null; try { conn = dataSource.getConnection(); stmt = conn.createStatement(); stmt.execute("insert into cats (name) values(" + new String(parameters) + ")"); } finally { if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } } protected int getJumpsCount() { int result = jumpsCount; jumpsCount = 0; return result; } public void finalize() { jumpsCount = 0; } @Override public boolean equals(Object otherCat) { if (otherCat == this) { return true; } if (!(otherCat instanceof Cat4)) { return false; } Cat4 cat4 = (Cat4) otherCat; return name.equals(cat4.name); } @Override public String toString() { try { return "Cat4{" + "name='" + name + '\'' + ", url=" + dataSource.getConnection().getMetaData().getURL() + '}'; } catch (SQLException e) { e.printStackTrace(); return null; } } }
#magnit | Прислать задачу | Подписаться

Иннотех Решить проблему циклической зависимости @lombok.RequiredArgsConstructor @org.springframework.stereotype.Controller cl
Иннотех Решить проблему циклической зависимости
@lombok.RequiredArgsConstructor @org.springframework.stereotype.Controller class LeController { private final AService a; @GetRequest("/") public String doGet() { a.foo2(); return "ok"; } } @lombok.RequiredArgsConstructor @org.springframework.stereotype.Service class AService { private final BService b; public void foo() { b.bar(); } public void foo2() { // ... } } @lombok.RequiredArgsConstructor @org.springframework.stereotype.Service class BService { private final CService c; public void bar() { c.barK(); } } @lombok.RequiredArgsConstructor @org.springframework.stereotype.Service class CService { private final AService a; public void barK() { a.foo2(); } }

Иннотех Вычислить средний возраст n лучших студентов. В age и avg могут прийти невалидные строки.
/** * public class Student { * public String name; // имя * public String age; // возраст - это число типа "30", "54". * public String avg; // средний балл - число с плавающей точкой "4.6", "1.0". Интервал оценок от "1.0" до "5.0". * } */ public class StudentUtils { // Вычислить средний возраст лучших n студентов. public static double foo(List<Student> students, int n) { return 0.0; } }
#innotech | Прислать задачу | Подписаться

ВК Что может распечататься на консоль? 1) гарантированно 0? 2) гарантированно 13? 3) 0 или 13?
import java.util.*; public class MaxConsecutiveRepeats { /** * Функция принимает на вход строку и возвращает карту символов и максимального количества * их последовательных повторений. * * @param input Входная строка. * @return Карта, где ключ — уникальный символ строки, а значение — * максимальное количество его последовательных повторений. * * Input: "aaffbaaaafcz" * Output: {a=4, b=1, c=1, f=2, z=1} */ public static Map<Character, Integer> maxConsecutiveRepeats(String input) { } // Тестирование функции public static void main(String[] args) { String testString = "aaffbaaaafcz"; Map<Character, Integer> output = maxConsecutiveRepeats(testString); System.out.println(output); } } public class AtomicsQuestion { private static int result; private static AtomicBoolean done = new AtomicBoolean(false); public static void mail(String[] args) { Thread thread = new Thread(() -> { result = 13; done.set(true); }); thread.start(); while(!done.get()) {/*do nothing*/} System.out.println(result); } }
#vk| Подписаться

Точка банк (стажировка) Провести код-ревью
boolean containsStringInData(String csvFile, String str) throw IOException {

    BufferedReader reader = new BufferedReader(new FileReader(csvFile);
    ArrayList<String> list = new ArrayList();

    String line;
    while ((line = br.readLine()) != null) {
        list.add(line);
    }

    boolean result;
    for (String s : list) {
        if (s == str) {
            result = true;
        }
    }

    return result;
}
Подписаться

Точка банк (стажировка) Вывести названия всех книг и фамилии их авторов (title, surname)
-- Создание таблицы авторов  
CREATE TABLE authors (  
    id INT PRIMARY KEY AUTO_INCREMENT,  
    surname VARCHAR(255) NOT NULL,  
    name VARCHAR(255) NOT NULL,  
    patronymic VARCHAR(255) NOT NULL,  
    birth_date DATE,  
    country VARCHAR(100),  
    biography TEXT  
);  

-- Создание таблицы книг  
CREATE TABLE books (  
    id INT PRIMARY KEY AUTO_INCREMENT,  
    title VARCHAR(255) NOT NULL,  
    author_id INT NOT NULL,  
    publish_date DATE,  
    isbn VARCHAR(20) UNIQUE,  
    pages INT,  
    FOREIGN KEY (author_id) REFERENCES authors(id) ON DELETE CASCADE  
);
Далее доп задание - убирают NOT NULL у  author_id и FOREIGN KEY (author_id) REFERENCES authors(id) ON DELETE CASCADE и спрашивают как теперь вывести все книги с авторами (даже если у книги нет автора) #sql | Подписаться

Всех с окончанием рабочей недели) #fridaymemes

Сбер Какая сложность для операций?
public class HashmapTimeComplexity { public static void main(String[] args) { Map<KeyMap, String> msg = new HashMap<>(); KeyMap key = new KeyMap(200, "foo"); //в map добавляются 1...N разных элементов //какая сложность алгоритма добавления ключа ниже map.put(key, "123"); map.remove(key); map.get(key); } } record KeyMap(int first, String second) { @Override public int hashCode() { return 42; } }
#sber | Подписаться

Сбер Что будет выведено? #sber | Подписаться
Сбер Что будет выведено? #sber | Подписаться