Проверьте, являются ли два связанных списка анаграммами или нет
Имея две строки в виде связанных списков, задача состоит в том, чтобы проверить, является ли одна строка анаграммой другой. Выведите Да , если они есть, иначе выведите Нет .
Примеры:
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
Подход: Эту проблему можно решить, отсортировав связанные списки, а затем проверив, идентичны они или нет. Если они идентичны после сортировки, то это анаграммы. В противном случае они не являются. Теперь выполните следующие шаги, чтобы решить эту проблему:
- Отсортируйте оба связанных списка с помощью пузырьковой сортировки.
- Теперь пройдите оба связанных списка с самого начала и сопоставьте каждый соответствующий узел.
- Если два соответствующих узла различны, то выведите No и вернитесь.
- Выведите Yes в конце после окончания цикла.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(N 2 )
Вспомогательное пространство: О(1)