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

Viết chương trình để đảo ngược một mảng hoặc chuỗi trong C ++

Ở đây, chúng ta được cung cấp một mảng hoặc một chuỗi ký tự. Chúng tôi sẽ tạo một chương trình để đảo ngược các phần tử của một mảng hoặc chuỗi.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào

array = {2, 5, 7, 1, 9}

Đầu ra

{9, 1, 7, 5, 2}

Đầu vào

string = “Hello!”

Đầu ra

!0lleH

Để tạo một chương trình, chúng ta sẽ lặp qua các phần tử của mảng / chuỗi (cả hai đều hoạt động theo cùng một cách). Lấy một biến cho đầu và một cuối. Và hoán đổi cả hai yếu tố. Tăng biến bắt đầu và giảm biến kết thúc. Việc hoán đổi sẽ tiếp tục cho đến khi giá trị của biến bắt đầu nhỏ hơn biến kết thúc.

Chương trình có thể được tạo theo hai cách, một là lặp đi lặp lại và hai là đệ quy. Chúng tôi sẽ tạo chương trình chứng minh hoạt động của cả hai phương pháp.

Ví dụ

Phương pháp 1:Phương pháp lặp lại

Program :
#include <iostream>
using namespace std;
void revereseArrayIt(int arr[], int start, int end){
   while (start < end){
      int temp = arr[start];
      arr[start] = arr[end];
      arr[end] = temp;
      start++;
      end--;
   }
}
int main() {
   int arr[] = {6, 9, 1, 4, 0, 5};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"Orignal Array : ";
   for (int i = 0; i < n; i++)
      cout<<arr[i]<<" ";
   cout<<endl;
      revereseArrayIt(arr, 0, n-1);
      cout << "Reversed array : ";
      for (int i = 0; i < n; i++)
         cout<<arr[i]<<" ";
   cout<<endl;
   return 0;
}

Đầu ra

Orignal Array : 6 9 1 4 0 5
Reversed array : 5 0 4 1 9 6

Ví dụ

Phương pháp 2:Phương pháp tiếp cận đệ quy

#include <iostream>
using namespace std;
void revereseArrayRec(int arr[], int start, int end){
   if(start >= end)
      return;
   int temp = arr[start];
   arr[start] = arr[end];
   arr[end] = temp;
   revereseArrayRec(arr,start+1, end-1);
}
int main() {
   int arr[] = {6, 9, 1, 4, 0, 5};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"Orignal Array : ";
   for (int i = 0; i < n; i++)
      cout<<arr[i]<<" ";
   cout<<endl;
      revereseArrayRec(arr, 0, n-1);
      cout << "Reversed array : ";
      for (int i = 0; i < n; i++)
         cout<<arr[i]<<" ";
   cout<<endl;
   return 0;
}

Đầu ra

Orignal Array : 6 9 1 4 0 5
Reversed array : 5 0 4 1 9 6