Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

Array가 Palindrome인지 C++에서 STL을 사용하지 않는지 확인하는 프로그램

<시간/>

n개의 정수로 구성된 배열 arr[n]이 주어지면 배열이 회문인지 아닌지를 찾는 것이 작업입니다. C++에서 STL을 사용하여 명시된 작업을 수행해야 합니다.

C++에는 STL(Standard Template Library)의 기능이 있으며, 데이터 구조와 스택, 큐, 목록 등과 같은 여러 기능을 제공하는 데 사용되는 C++ 템플릿 클래스 집합입니다. 이를 사용하려면 지식이 있어야 합니다. 템플릿 클래스 수.

회문(Palindrome)은 시퀀스의 앞이나 뒤에서 동일하게 읽는 시퀀스입니다. 회문의 몇 가지 간단한 예는 − MADAM, RACECAR 등입니다. 배열은 아래 주어진 예와 같은 회문입니다. −

Array가 Palindrome인지 C++에서 STL을 사용하지 않는지 확인하는 프로그램

따라서 작업은 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