C++程序 使用STL检查数组是否回文

C++程序 使用STL检查数组是否回文

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

示例:

输入: arr[] = {3, 6, 0, 6, 3}
输出: 回文

输入: arr[] = {1, 2, 3, 4, 5}
输出: 不是回文

方法:

  • 使用STL中提供的 reverse() 方法获取数组的反转方式。
  • 将标志设置为未设置 int flag = 0
  • 循环数组直到大小为n,并检查原始数组和反转数组是否相同。如果不同,则将标志设置为1。
  • 循环结束后,如果设置了标志,则打印“不是回文”否则打印“回文”

以下是上述方法的实现:

//使用C++ STL检查数组是否回文
 
#include 
using namespace std;
 
void palindrome(int arr[], int n)
{
   //将flag初始化为零
   int flag = 0;
 
   //创建另一个数组来存储原始数组
   int arr2[n];
   memcpy(arr2, arr, n * sizeof(int));
 
   //反转数组
   reverse(arr, arr + n);
 
   //检查数组是否是回文
   for (int i = 0; i < n; i++)
      if (arr[i] != arr2[i]) {
         flag = 1;
         break;
      }
 
   //打印结果
   if (flag == 0)
      cout << "回文\n";
   else
      cout << "不是回文\n";
}
 
int main()
{
   //获取数组
   int arr[] = { 1, 2, 3, 2, 1 };
 
   //计算大小
   int n = sizeof(arr) / sizeof(arr[0]);
 
   palindrome(arr, n);
 
   return 0;
}  

输出:

回文

时间复杂度 :O(n)

辅助空间 :O(n)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例