Используя тип данных стека, напишите алгоритм / псевдокод, чтобы проверить, является ли данный массив палиндромом - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь написать алгоритм (независимый от языка программирования), чтобы проверить, является ли данный массив A палиндромом, используя тип данных стека.

Пожалуйста, не используйте язык программирования - используйте алгоритм.

1 Ответ

0 голосов
/ 02 мая 2018

Наш подход будет следующим: - «вставить» элементы массива a [left… .right] во вновь созданный стек, так что элемент слева помещается первым. Таким образом, элементы массива обращаются так, что последний элемент массива находится на вершине стека.

  • После этого мы «вставляем» каждый элемент из стека во вновь созданный массив b. Это означает, что последний элемент исходного массива a становится первым элементом нового массива b.

  • Наконец, мы сравниваем каждый элемент a и b, и если они равны, то исходный массив a является палиндромом

Шаги алгоритма:

  1. Сделать пустой стек S

  2. Установите l влево и установите r вправо (из массива a)

  3. Для каждого элемента в массиве a [l… r] повторите: 3.1. Добавить элемент в начало стека S

  4. Создать новый пустой массив b такой, что b [left… ..right]

  5. Пока стек S не пуст, повторите: 5.1 Удалить каждый элемент из верхней части S в массив b

  6. Установите l влево и r вправо для обоих массивов a и b. 6.1 Если a [влево… вправо] ≠ b [влево… вправо]; прекратить с ответом ложным 6.2 Остальное a [влево… вправо] = b [влево… вправо];

  7. Завершить с ответом isPalindrome.

Pheww !!!!

...