Add more lessons

This commit is contained in:
2026-01-23 10:00:53 +03:00
parent e38ebb8c17
commit e30a84f178
8 changed files with 130 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
package ru.ilug.c10_word_frequency;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
import java.util.Map;
@Slf4j
public class MainTest {
public static void main(String[] args) {
WordFrequency wordFrequency = null;
List<String> words1 = List.of("list", "map", "class", "public", "list", "set", "word", "class", "list", "public", "main", "string", "map");
List<String> words2 = List.of("long", "string", "list", "public", "import", "double", "word", "map", "class", "package", "void", "long");
Map<String, Integer> result = wordFrequency.getWordFrequency(words1, words2);
log.info("Word frequent in two lists: {}", result);
}
}

View File

@@ -0,0 +1,16 @@
package ru.ilug.c10_word_frequency;
import java.util.List;
import java.util.Map;
public interface WordFrequency {
/**
* Ищет слова, которые встречаются в обоих списках, считает суммарную частоту каждого
* @param list1 Первый список слов
* @param list2 Второй список слов
* @return Частота слов, которые есть в обоих списках
*/
Map<String, Integer> getWordFrequency(List<String> list1, List<String> list2);
}

View File

@@ -0,0 +1,12 @@
package ru.ilug.c7_factorial_calculator;
public interface FactorialCalculator {
/**
* Считает факториал переданного числа, для оптимизации использует кэш из ранее посчитанных факториалов
* @param num Основа факториала
* @return Результат вычисления факториала
*/
int calculate(int num);
}

View File

@@ -0,0 +1,16 @@
package ru.ilug.c7_factorial_calculator;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class MainTest {
public static void main(String[] args) {
FactorialCalculator factorialCalculator = null;
log.info("Factorial 3 = {}", factorialCalculator.calculate(3));
log.info("Factorial 4 = {}", factorialCalculator.calculate(4));
log.info("Factorial 7 = {}", factorialCalculator.calculate(7));
}
}

View File

@@ -0,0 +1,15 @@
package ru.ilug.c8_anagram_group;
import java.util.List;
import java.util.Map;
public interface AnagramGroup {
/**
* Группирует слова в группы анаграммы (слова, составленные из одних букв). Ключ — отсортированные буквы слова, значение — список анаграмм.
* @param words Слова
* @return Группы
*/
Map<String, List<String>> group(String... words);
}

View File

@@ -0,0 +1,18 @@
package ru.ilug.c8_anagram_group;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class MainTest {
public static void main(String[] args) {
AnagramGroup anagramGroup = null;
String[] words = new String[]{
"кабан", "соринка", "кукла", "мышка", "приказ", "шнурок",
"кулак", "банка", "коршун", "росинка", "каприз", "камыш"
};
log.info("Anagram groups: {}", words);
}
}

View File

@@ -0,0 +1,17 @@
package ru.ilug.c9_most_frequent_words;
import lombok.extern.slf4j.Slf4j;
import java.util.Map;
@Slf4j
public class MainTest {
public static void main(String[] args) {
MostFrequentWords mostFrequentWords = null;
Map<String, Integer> result = mostFrequentWords.getNWords("На дворе трава, на траве дрова. Не руби дрова на траве двора!", 3);
log.info("3 most frequent words: {}", result);
}
}

View File

@@ -0,0 +1,15 @@
package ru.ilug.c9_most_frequent_words;
import java.util.Map;
public interface MostFrequentWords {
/**
* Возвращает N самых часто встречаемых слов в тексте
* @param text Текст
* @param count Количество возвращаемых слов
* @return ключ - слово, значение - частота
*/
Map<String, Integer> getNWords(String text, int count);
}