Практические задачи с HH уровень начальный.
This commit is contained in:
59
src/main/java/com/algos/hh/LogProcessor.java
Normal file
59
src/main/java/com/algos/hh/LogProcessor.java
Normal 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]","");
|
||||
}
|
||||
}
|
||||
47
src/main/java/com/algos/hh/ShapeCalculator.java
Normal file
47
src/main/java/com/algos/hh/ShapeCalculator.java
Normal 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user