Проверьте, являются ли два связанных списка анаграммами или нет

Опубликовано: 20 Сентября, 2022

Имея две строки в виде связанных списков, задача состоит в том, чтобы проверить, является ли одна строка анаграммой другой. Выведите Да , если они есть, иначе выведите Нет .

Примеры:

Input: 
Linked List 1 = T->R->I->A->N->G->L->E->NULL
Linked List 2 = I->N->T->E->G->R->A->L->NULL
Output: Yes
Explanation: The given two strings are anagram as they have the same characters present equal times.

Input:
Linked List 1 = S->I->L->E->N->T->NULL
Linked List 2 = L->I->S->T->E->N->NULL
Output: Yes

Подход: Эту проблему можно решить, отсортировав связанные списки, а затем проверив, идентичны они или нет. Если они идентичны после сортировки, то это анаграммы. В противном случае они не являются. Теперь выполните следующие шаги, чтобы решить эту проблему:

  1. Отсортируйте оба связанных списка с помощью пузырьковой сортировки.
  2. Теперь пройдите оба связанных списка с самого начала и сопоставьте каждый соответствующий узел.
  3. Если два соответствующих узла различны, то выведите No и вернитесь.
  4. Выведите Yes в конце после окончания цикла.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(N 2 )
Вспомогательное пространство: О(1)