Я пытаюсь написать алгоритм (независимый от языка программирования), чтобы проверить, является ли данный массив A палиндромом, используя тип данных стека.
Пожалуйста, не используйте язык программирования - используйте алгоритм.
Наш подход будет следующим: - «вставить» элементы массива a [left… .right] во вновь созданный стек, так что элемент слева помещается первым. Таким образом, элементы массива обращаются так, что последний элемент массива находится на вершине стека.
После этого мы «вставляем» каждый элемент из стека во вновь созданный массив b. Это означает, что последний элемент исходного массива a становится первым элементом нового массива b.
Наконец, мы сравниваем каждый элемент a и b, и если они равны, то исходный массив a является палиндромом
Шаги алгоритма:
Сделать пустой стек S
Установите l влево и установите r вправо (из массива a)
Для каждого элемента в массиве a [l… r] повторите: 3.1. Добавить элемент в начало стека S
Создать новый пустой массив b такой, что b [left… ..right]
Пока стек S не пуст, повторите: 5.1 Удалить каждый элемент из верхней части S в массив b
Установите l влево и r вправо для обоих массивов a и b. 6.1 Если a [влево… вправо] ≠ b [влево… вправо]; прекратить с ответом ложным 6.2 Остальное a [влево… вправо] = b [влево… вправо];
Завершить с ответом isPalindrome.
Pheww !!!!