Учебное мок-собеседование на позицию Java-разработчика с live coding. После разговора об опыте и pet-проекте кандидат с подсказками решает две задачи: подсчёт частоты слов с нормализацией регистра и игнорированием пунктуации, а затем проверку корректной скобочной последовательности. В конце интервьюер разбирает решения и даёт рекомендации по подготовке.
Кандидат с небольшим практическим опытом рассказывает о Spring-проекте с PostgreSQL и Hibernate. В первой задаче он нормализует строку, разбивает её на слова и собирает частоты через коллекции и Stream API; интервьюер обсуждает replaceAll, регулярные выражения, именование и сложность. Во второй задаче разбираются проверка скобочной последовательности, массив символов, циклы и тестовые случаи. Финальный блок посвящён обратной связи и практике String API, регулярных выражений, алгоритмов и структур данных.
На live coding сначала проясните условия задачи и вслух проговорите план; затем сделайте простое рабочее решение, а оптимизацию обсуждайте отдельным шагом.
Для подсчёта частоты слов заранее определите правила токенизации: нормализуйте регистр, отделяйте пунктуацию, не склеивая соседние слова, и храните счётчики в Map.
String.split принимает регулярное выражение: \s+ позволяет разделять последовательности пробельных символов, а шаблон стоит проверять на крайних случаях.
Для общей проверки правильной скобочной последовательности используйте стек: сравнение символов с краёв не покрывает все валидные случаи, например []().