给定一个数组,任务是使用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等的更多准备工作,请参阅“完整面试准备课程” 。