Dado un arreglo, la tarea es determinar si un arreglo es un palíndromo o no, usando STL en C++.
Ejemplos:
Input: arr[] = {3, 6, 0, 6, 3} Output: Palindrome Input: arr[] = {1, 2, 3, 4, 5} Output: Not Palindrome
Acercarse:
- Obtenga el reverso de Array usando el método reverse() , provisto en STL.
- Inicialice la bandera para desarmar int flag = 0 .
- Haga un bucle en la array hasta el tamaño n y verifique si la array original y la array invertida son iguales. Si no establece la bandera = 1
- Después de que el ciclo haya terminado, si la bandera está configurada, imprima «No palíndromo»; de lo contrario, imprima «Palíndrome»
A continuación se muestra la implementación del enfoque anterior:
// C++ program to check if an Array // is Palindrome or not using STL #include <bits/stdc++.h> using namespace std; void palindrome(int arr[], int n) { // Initialise flag to zero. int flag = 0; // Create another array // to store the original array int arr2[n]; memcpy(arr2, arr, n * sizeof(int)); // Reverse the array reverse(arr, arr + n); // Check if the array is Palindrome for (int i = 0; i < n; i++) if (arr[i] != arr2[i]) { flag = 1; break; } // Print the result if (flag == 0) cout << "Palindrome\n"; else cout << "Not Palindrome\n"; } int main() { // Get the array int arr[] = { 1, 2, 3, 2, 1 }; // Compute the size int n = sizeof(arr) / sizeof(arr[0]); palindrome(arr, n); return 0; }
Producción:
Palindrome
Artículos relacionados: