📜  程序检查数组是否为回文或不使用C ++中的STL

📅  最后修改于: 2021-05-31 17:10:24             🧑  作者: Mango

给定一个数组,任务是使用C++中的STL确定数组是否是回文。

例子:

Input: arr[] = {3, 6, 0, 6, 3}
Output: Palindrome

Input: arr[] = {1, 2, 3, 4, 5}
Output: Not Palindrome

方法:

  • 使用STL中提供的reverse()方法获取Array的逆函数。
  • 初始化标志以取消设置int标志= 0
  • 循环数组直到大小为n,然后检查原始数组和反向数组是否相同。如果未设置标志= 1
  • 循环结束后,如果设置了标志,则打印“ Not Palindrome”,否则打印“ Palindrome”

下面是上述方法的实现:

// C++ program to check if an Array
// is Palindrome or not using STL
  
#include 
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;
}
输出:
Palindrome

相关文章:

  • https://www.geeksforgeeks.org/program-to-check-if-an-array-is-palindrome-or-not/
  • https://www.geeksforgeeks.org/program-to-check-if-an-array-is-palindrome-or-not-using-recursion/
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”