/
hel_bumer
/
Piramid
Обзор
Документация
Войти
/
hel_bumer
/
Piramid
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Tree.java
98 строк
3 KB
hel_bumer
Trees
27 янв 2026, 21:44
Верифицирован
27 янв 2026, 21:44
9114269
Код
Авторство
О чём код?
import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; public class Tree { private String name; private Tree left; private Tree right; public Tree(String name) { this.name = name; } public boolean contains(String query) { if (query.compareTo(name) < 0) { return left != null && left.contains(query); } else if (query.compareTo(name) > 0) { return right != null && right.contains(query); } else { return name.equals(query); } } public String getName() { return name; } public void setName(String name) { this.name = name; } public Tree getLeft() { return left; } public void setLeft(Tree left) { this.left = left; } public Tree getRight() { return right; } public void setRight(Tree right) { this.right = right; } // Раскомментируйте и реализуйте этот метод public boolean isNamePyramid() { // Проверка левого потомка if (this.left != null) { if (this.name.length() > this.left.name.length()) { return false; } if (!this.left.isNamePyramid()) { // рекурсивный вызов return false; } } // Проверка правого потомка if (this.right != null) { if (this.name.length() > this.right.name.length()) { return false; } if (!this.right.isNamePyramid()) { // рекурсивный вызов return false; } } return true; } @Override public String toString() { String[] leftLines = (left != null ? left.toString() : "").split("\n"); String[] rightLines = (right != null ? right.toString() : "").split("\n"); int maxLeftSize = Arrays.stream(leftLines) .map(String::length) .max(Comparator.naturalOrder()) .orElse(0); List<String> lines = new ArrayList<>(); lines.add(" ".repeat(maxLeftSize + 1) + name); for (int i = 0; i < Math.max(leftLines.length, rightLines.length); i++) { String prefix = i < leftLines.length ? leftLines[i] : ""; lines.add( prefix + " ".repeat(maxLeftSize + name.length() + 1 * 2 - prefix.length()) + (i < rightLines.length ? rightLines[i] : "") ); } return lines.stream().collect(Collectors.joining("\n")); } }