Java-программа для проверки того, являются ли две строки анаграммой | Программа анаграммы

Опубликовано: 2021-07-23

Оглавление

Менее известные факты о Java

Являясь одним из самых надежных языков программирования, Java используется во всем мире благодаря своим надежным и гибким функциям. Стабильность и универсальность Java сделали его одним из самых востребованных языков программирования. Однако есть несколько менее известных фактов об этом безопасном языке программирования. Давайте познакомимся с некоторыми из них.

  • Дуб — это оригинальное название Java.
  • Вы можете много заработать, изучая этот язык программирования.
  • Java является вторым по численности населения языком программирования в мире, первым из которых является C.
  • Около 3 миллиардов устройств по всему миру работают на Java.
  • Java — язык программирования с учетом регистра. т. е. «Final» и «final» не совпадают в коде Java. Узнайте больше о том, почему Java так популярен среди разработчиков.

Обзор анаграммы

Если строка преобразуется в другую строку путем перестановки ее символов, то говорят, что две строки являются анаграммами друг друга. Однако количество символов в исходной строке и полученной строке должно совпадать. Чтобы лучше понять концепцию анаграммы, давайте рассмотрим две строки: «бог» и «собака».

Строки «бог» и «собака» являются анаграммами друг друга, потому что первую строку можно переставить, чтобы получить вторую, просто поменяв местами символы «d» и «g». Для любых двух входных строк вычисляется частота каждого символа, чтобы проверить, являются ли строки анаграммами друг друга или нет. Итак, анаграмма строки может быть определена как любая другая строка, содержащая те же символы с той же частотой, что и во входной строке, в любой последовательности.

Алгоритм для программы Anagram в Java

Шаг 1: Определите две входные строки.

Шаг 2: определяется длина каждой строки. Входные строки не являются анаграммами друг друга, если они имеют разную длину строк.

Шаг 3: Если строки имеют одинаковую длину, символы строки преобразуются в буквы нижнего регистра, чтобы упростить сравнение.

Шаг 4: Строковые символы либо сортируются встроенными функциями, либо преобразуются в массив символов, а затем сортируются.

Шаг 5: Отсортированный массив символов проверяется на равенство.

Реализация программы Anagram на Java

Существует несколько решений для реализации кода, определяющего, являются ли две строки анаграммами или нет. Для каждого решения, обсуждаемого в последующих разделах, шаг 2 описанного выше алгоритма формирует основу и облегчает досрочный выход, если длины строк не совпадают. В последующих разделах давайте больше узнаем о различных типах написания кода для логики анаграмм.

Сортировочный подход

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

Понимание и реализация этого кода проще. Временная сложность приведенного выше решения составляет O (n log n), и требуется дополнительное пространство для хранения массивов символов входных строк.

Изучайте онлайн-курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Счетный подход к реализации логики анаграммы

В этом подходе измеряется количество вхождений каждого символа в двух входных строках. Если частота каждого символа в обеих строках одинакова, строки являются анаграммами друг друга.

Давайте построим одну гистограмму, чтобы сэкономить память. В первой строке счетчики каждого символа увеличиваются, тогда как счетчики второго символа уменьшаются. Если конечный результат сводит все к нулю, то строки — это анаграммы.

Это решение выполняется быстрее, чем предыдущее, и его временная сложность составляет O(n). Однако для подсчета символов требуется дополнительное место. Это решение практически эффективно только для строк с меньшим диапазоном символов. Еще один факт об этом решении заключается в том, что оно использует ограниченное количество встроенных функций Java и, таким образом, увеличивает длину кода.

Оформить заказ: идеи и темы проекта Java

Определите анаграммы, проверив с помощью MultiSet

Использование MultiSet, набора, который помогает проводить независимое от порядка сравнение с идентичными элементами, упрощает процесс подсчета и сравнения в этом решении.

Каждая входная строка сначала преобразуется в MultiSet символов, а затем проверяется на четность.

Временная сложность этого решения составляет O(n). Это похоже на подход к подсчету для определения анаграмм. Однако он может эффективно работать для строк большей длины. Кроме того, при написании кода задействовано большее количество функций библиотеки Java.

Буквенный подход к определению анаграмм

Все рассмотренные до сих пор решения рассматривают знаки препинания также как часть строки. Кроме того, эти решения чувствительны к регистру. Буквенный подход реализует код для проверки входных строк на основе лингвистического определения анаграмм. При таком подходе пробелы и знаки препинания не считаются частью входной строки.

Первым шагом при внедрении буквенного решения является устранение нежелательных символов и преобразование всех допустимых символов в буквы нижнего регистра. После этого шага можно использовать любую из рассмотренных выше реализаций для проверки того, являются ли строки анаграммами или нет.

Если вам интересно узнать больше о Java, разработке программного обеспечения с полным стеком, ознакомьтесь с программой Executive PG upGrad и IIIT-B по разработке программного обеспечения — специализация в разработке полного стека, которая предназначена для работающих профессионалов и предлагает более 500 часов интенсивного обучения. , более 9 проектов и заданий, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Получите работу своей мечты

Подать заявку на участие в программе Executive PG по разработке программного обеспечения от IIIT-B