Практические задачи с HH уровень начальный.

This commit is contained in:
Leonid
2025-03-12 22:08:48 +03:00
parent 8991e3def8
commit 5d40156803
2 changed files with 106 additions and 0 deletions

View File

@@ -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]","");
}
}

View File

@@ -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);
}
}