/
javapractice
/
JavaPractice
Обзор
Документация
Войти
/
javapractice
/
JavaPractice
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
2
CI/CD
Аналитика
develop
CodeRun/src/main/java/hrTechInterview/HrTechInterview01.java
84 строки
3 KB
Кузьма W600DEV Даждъбогин
TSKJVPRCTC5-18 Словарь синонимов. два решения. через список и через двойную мапу
30 янв 2026, 12:58
30 янв 2026, 12:58
234f913
Код
Авторство
О чём код?
package hrTechInterview; import java.io.*; import java.util.HashMap; /** * Дан словарь, состоящий из пар слов. Каждое слово является синонимом к парному ему слову. Все слова в словаре различны. * Для одного данного слова определите его синоним. */ public class HrTechInterview01 { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out)); int n = getCount(reader); var strings = getStrings(n, reader); var baseWord = reader.readLine().trim(); var synonym = new HrTechInterview01().getSynonymByArray(baseWord, strings); System.out.println(synonym); synonym = new HrTechInterview01().getSynonymByMap(reader); System.out.println(synonym); reader.close(); writer.close(); } private static String[][] getStrings(int n, BufferedReader reader) throws IOException { String[][] strings = new String[n][2]; for (int i = 0; i <= n - 1; i++) { String[] s = reader.readLine().split(" "); strings[i][0] = s[0].trim(); strings[i][1] = s[1].trim(); } return strings; } private static int getCount(BufferedReader reader) throws IOException { return Integer.parseInt(reader.readLine()); } /** * многомерный массив ++++++ * set уникальные значения ? -- * list - связанная последовательность ++ new ArrayList<>(); * map - пара нужна? +- * * @param input для этого слова ищем синоним * @param pairs все синонимы * @return синоним если найден */ protected String getSynonymByArray(String input, String[][] pairs) { for (int i = 0; i < pairs.length; i++) { if (pairs[i][0].equals(input)) { return pairs[i][1]; } if (pairs[i][1].equals(input)) { return pairs[i][0]; } } return null; } /** * Решение через две Карты. */ protected String getSynonymByMap(BufferedReader reader) throws IOException { // программа получает количество пар int n = Integer.parseInt(reader.readLine()); // Программа получает Н строк. в каждой строке всегда два слова, которые разделены пробелом. var m = new HashMap<String, String>(); for (int i = 0; i < n; i++) { String[] s = reader.readLine().split(" "); m.put(s[0], s[1]); m.put(s[1], s[0]); } // следует ввод одно слово var baseWord = reader.readLine(); return m.get(baseWord); } }