Add more lessons
This commit is contained in:
21
src/main/java/ru/ilug/c10_word_frequency/MainTest.java
Normal file
21
src/main/java/ru/ilug/c10_word_frequency/MainTest.java
Normal 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/ru/ilug/c10_word_frequency/WordFrequency.java
Normal file
16
src/main/java/ru/ilug/c10_word_frequency/WordFrequency.java
Normal 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);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package ru.ilug.c7_factorial_calculator;
|
||||||
|
|
||||||
|
public interface FactorialCalculator {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Считает факториал переданного числа, для оптимизации использует кэш из ранее посчитанных факториалов
|
||||||
|
* @param num Основа факториала
|
||||||
|
* @return Результат вычисления факториала
|
||||||
|
*/
|
||||||
|
int calculate(int num);
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/ru/ilug/c7_factorial_calculator/MainTest.java
Normal file
16
src/main/java/ru/ilug/c7_factorial_calculator/MainTest.java
Normal 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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
15
src/main/java/ru/ilug/c8_anagram_group/AnagramGroup.java
Normal file
15
src/main/java/ru/ilug/c8_anagram_group/AnagramGroup.java
Normal 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);
|
||||||
|
|
||||||
|
}
|
||||||
18
src/main/java/ru/ilug/c8_anagram_group/MainTest.java
Normal file
18
src/main/java/ru/ilug/c8_anagram_group/MainTest.java
Normal 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
17
src/main/java/ru/ilug/c9_most_frequent_words/MainTest.java
Normal file
17
src/main/java/ru/ilug/c9_most_frequent_words/MainTest.java
Normal 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user