Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình kiểm tra xem một Mảng có phải là Palindrome hay không sử dụng STL trong C ++

Cho một mảng arr [n] gồm n số nguyên, nhiệm vụ là tìm xem mảng có phải là palindrome hay không. Chúng tôi phải thực hiện nhiệm vụ đã nêu bằng cách sử dụng STL trong C ++.

Trong C ++ có một tính năng của STL (Thư viện mẫu chuẩn), nó là một tập hợp các lớp mẫu C ++ được sử dụng để cung cấp cấu trúc dữ liệu và một số hàm như ngăn xếp, hàng đợi, danh sách, v.v. Để sử dụng chúng ta phải có kiến ​​thức. của các lớp mẫu.

Palindrome là một chuỗi được đọc giống nhau từ phía trước hoặc phía sau của chuỗi. Một số ví dụ đơn giản về palindrome là - MADAM, RACECAR, v.v. Một mảng sẽ là palindrome như trong ví dụ đã cho bên dưới -

Chương trình kiểm tra xem một Mảng có phải là Palindrome hay không sử dụng STL trong C ++

Vì vậy, nhiệm vụ rất đơn giản để tìm ra liệu mảng có phải là palindrome hay không bằng cách sử dụng STL trong C ++ và in "nó là palindrome" nếu nó là palindrome, còn "nó không phải là palindrome" nếu nó không phải là palindrome.

Đầu vào

arr[] = {1, 2, 3, 5, 3, 2, 1}

Đầu ra

its a palindrome

Đầu vào

arr[] = {1, 2, 3, 4, 5}

Đầu ra

its not a palindrome

Phương pháp tiếp cận được sử dụng dưới đây như sau để giải quyết vấn đề

  • Đặt cờ =0 theo mặc định khi bắt đầu.

  • Lặp lại mảng thứ i từ 0 đến kích thước n / 2

  • Đối với mỗi tôi kiểm tra xem arr [i]! =arr [n-i-1] sau đó đặt cờ =1 và ngắt

  • Sau khi vòng lặp kết thúc, Nếu cờ là 1 thì in "nó là một palindrome", còn lại in "nó không phải là palindrome".

Thuật toán

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)

Ví dụ

#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;
}

Đầu ra

Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

its a palindrome