Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: anagram

Как проверить, являются ли две строки анаграммами?

Вопрос проверяет знание базовых алгоритмов работы со строками и символами.

Короткий ответ

Две строки являются анаграммами, если состоят из одинаковых символов в разном порядке.
Можно отсортировать символы и сравнить результат.
Либо посчитать количество каждого символа.
Обе строки должны быть одинаковой длины.
Пробелы и регистр обычно учитываются отдельно.

Длинный ответ

Перед выбором алгоритма важно определить правила сравнения строк.

Базовое определение

Определение:
Анаграммы — это строки, содержащие одинаковые символы с одинаковой частотой, но, возможно, в разном порядке.

Подход 1. Сортировка

Алгоритм:

  1. Проверить длину строк.

  2. Преобразовать строки в массивы символов.

  3. Отсортировать массивы.

  4. Сравнить результат.

Пример:

char[] a = s1.toCharArray();
char[] b = s2.toCharArray();
// Arrays.sort(a); Arrays.sort(b)

Плюсы:

  • простота
    Минусы:

  • сложность O(n log n)

Подход 2. Подсчет символов

Алгоритм:

  1. Создать структуру для подсчета.

  2. Увеличивать счетчики для первой строки.

  3. Уменьшать для второй.

  4. Проверить, что все счетчики равны нулю.

Этот подход эффективнее.

Краткий вывод

Строки являются анаграммами, если у них совпадает частота всех символов, и это можно проверить через сортировку или подсчет.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • Java

    Java

Ключевые слова

#anagram

Подпишись на Java Developer в телеграм