n개의 정수로 구성된 배열 arr[n]이 주어지면 배열이 회문인지 아닌지를 찾는 것이 작업입니다. C++에서 STL을 사용하여 명시된 작업을 수행해야 합니다.
C++에는 STL(Standard Template Library)의 기능이 있으며, 데이터 구조와 스택, 큐, 목록 등과 같은 여러 기능을 제공하는 데 사용되는 C++ 템플릿 클래스 집합입니다. 이를 사용하려면 지식이 있어야 합니다. 템플릿 클래스 수.
회문(Palindrome)은 시퀀스의 앞이나 뒤에서 동일하게 읽는 시퀀스입니다. 회문의 몇 가지 간단한 예는 − MADAM, RACECAR 등입니다. 배열은 아래 주어진 예와 같은 회문입니다. −

따라서 작업은 C++에서 STL을 사용하여 배열이 회문인지 여부를 알아내고 회문이면 "회문입니다"를 인쇄하고 회문이 아니면 "회문이 아닙니다"를 인쇄하는 작업은 간단합니다.
입력
arr[] = {1, 2, 3, 5, 3, 2, 1} 출력
its a palindrome
입력
arr[] = {1, 2, 3, 4, 5} 출력
its not a palindrome
문제를 해결하기 위해 다음과 같은 접근 방식을 사용합니다.
-
시작 시 기본적으로 플래그 =0을 설정합니다.
-
0에서 크기 n/2까지 배열 i를 반복합니다.
-
내가 확인할 때마다 ar[i]! =arr[n-i-1] 그런 다음 플래그를 1로 설정하고 중단
-
루프가 종료된 후 플래그가 1이면 "회문입니다"가 인쇄되고 그렇지 않으면 "회문이 아닙니다"가 인쇄됩니다.
알고리즘
Start 1→ declare function to check if an array is palindrome or not
void check_palindrome(int arr[], int size)
declare int flag = 0
Declare int arr_2[size]
Call memcpy(arr_2, arr, size * sizeof(int))
Call reverse(arr, arr + size)
Loop For int i = 0 and i < size and i++
IF (arr[i] != arr_2[i])
Set flag = 1
Break
End
IF (flag == 0)
Print its a palindrome
End
Else
Print its not a palindrome
End
Step 2→ In main()
Declare int arr[] = { 2,3,4,3,2 }
Declare int size = sizeof(arr) / sizeof(arr[0])
Call check_palindrome(arr, size) 호출 예시
#include <bits/stdc++.h>
using namespace std;
void check_palindrome(int arr[], int size){
int flag = 0;
int arr_2[size];
memcpy(arr_2, arr, size * sizeof(int));
reverse(arr, arr + size);
for (int i = 0; i < size; i++)
if (arr[i] != arr_2[i]){
flag = 1;
break;
}
if (flag == 0)
cout << "its a palindrome\n";
else
cout << "its not a palindrome\n";
}
int main(){
int arr[] = { 2,3,4,3,2 };
int size = sizeof(arr) / sizeof(arr[0]);
check_palindrome(arr, size);
return 0;
} 출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
its a palindrome