Практические задачи с 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