From 5d4015680332dbe0cdf81cc1c12a07e3048cbb00 Mon Sep 17 00:00:00 2001 From: Leonid Date: Wed, 12 Mar 2025 22:08:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=BA=D1=82=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D1=81=D0=BA=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87?= =?UTF-8?q?=D0=B8=20=D1=81=20HH=20=D1=83=D1=80=D0=BE=D0=B2=D0=B5=D0=BD?= =?UTF-8?q?=D1=8C=20=D0=BD=D0=B0=D1=87=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/algos/hh/LogProcessor.java | 59 +++++++++++++++++++ .../java/com/algos/hh/ShapeCalculator.java | 47 +++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 src/main/java/com/algos/hh/LogProcessor.java create mode 100644 src/main/java/com/algos/hh/ShapeCalculator.java diff --git a/src/main/java/com/algos/hh/LogProcessor.java b/src/main/java/com/algos/hh/LogProcessor.java new file mode 100644 index 0000000..dab00ed --- /dev/null +++ b/src/main/java/com/algos/hh/LogProcessor.java @@ -0,0 +1,59 @@ +package com.algos.hh; + +//Обработка логов +// Вы работаете над системой анализа логов. Вам нужно разработать компонент для обработки и анализа строк. Этот компонент должен выполнять следующие операции: +// 1. Переворот строки +// 2. Удаление всех цифр из строки +// 3. Замена всех пробелов на подчеркивания (_) +// 4. Вставка последовательности LOG в начало строки. +// Затем система должна выводить обработанную строку. +// Формат ввода +// Одна строка, состоящая из различных латинских буквенных и числовых символов, а также пробелов. Длина строки — от 2 до 100 символов. +// Формат вывода +// Одна строка — исходная строка, к которой применили последовательность операций из условия задачи. +// Пример 1 +// Входные данные: +// Hello World 123 +// Выходные данные: +// LOG_dlroW_olleH +// Пример 2 +// Входные данные: +// 12345678 +// Выходные данные: +// LOG + +public class LogProcessor { + + public static void main(String[] args) { + + System.out.println(processLine("Hello World 123")); + System.out.println(processLine("12345678")); + } + + public static String processLine(String line) { + + String result = line; + result = removeDigits(result); + result = replaceSpaces(result); + result = reverse(result); + + return "LOG" + result; + } + + private static String reverse(String result) { + + StringBuilder stringBuilder = new StringBuilder(result); + return stringBuilder.reverse().toString(); + } + + private static String replaceSpaces(String result) { + + return result.replace(" ", "_"); + } + + private static String removeDigits(String result) { + + + return result.replaceAll("[0-9]",""); + } +} diff --git a/src/main/java/com/algos/hh/ShapeCalculator.java b/src/main/java/com/algos/hh/ShapeCalculator.java new file mode 100644 index 0000000..66e71a4 --- /dev/null +++ b/src/main/java/com/algos/hh/ShapeCalculator.java @@ -0,0 +1,47 @@ +package com.algos.hh; + +//Площадь и периметр +// Вы разрабатываете программу для обработки информации о фигурах на плоскости. Вам необходимо создать класс, который будет вычислять площадь и периметр фигуры. Программа работает с двумя типами фигур — круг и квадрат. +// Формат ввода +// Одна строка, состоящая из типа фигуры («круг» или «квадрат») и опционально — измерения (радиус для круга или длина стороны для квадрата). Они разделены пробелом. +// Измерение может быть как целым, так и вещественным числом. Если измерение не указано, оно должно приниматься по умолчанию за 1. +// Формат вывода +// Два числа: сначала площадь, затем периметр фигуры, разделенные пробелом. Оба числа отформатированы с точностью до двух знаков после точки, например: 8.00 12.01. +// Пример 1 +// Входные данные: +// круг 3 +// Выходные данные: +// 28.27 18.85 +// Пример 2 +// Входные данные: +// квадрат +// Выходные данные: +// 1.00 4.00 + +public class ShapeCalculator { + public static void main(String[] args) { + + System.out.println(calculate("круг 3")); + System.out.println(calculate("квадрат")); + } + + static public String calculate(String input) { + + String[] myArray = input.split(" "); + String shape = myArray[0]; + Double dim = myArray.length > 1 ? Double.parseDouble(myArray[1]) : 1.0; + double area = 0.0; + double perimeter = 0.0; + + switch (shape) { + case "круг": + area = Math.PI * dim * dim; + perimeter = 2 * Math.PI * dim; + break; + case "квадрат": + area = dim * dim; + perimeter = 4 * dim; + } + return String.format("%.2f %.2f", area, perimeter); + } +} \ No newline at end of file