यहां, हमें कैरेक्टर्स की एक सरणी या स्ट्रिंग दी गई है। हम सरणी या स्ट्रिंग के तत्वों को उलटने के लिए एक प्रोग्राम बनाएंगे।
आइए एक उदाहरण से समस्या को समझते हैं,
इनपुट
array = {2, 5, 7, 1, 9}
आउटपुट
{9, 1, 7, 5, 2}
इनपुट
string = "Hello!"
आउटपुट
!olleH
एक प्रोग्राम बनाने के लिए, हम सरणी/स्ट्रिंग के तत्वों के माध्यम से लूप करेंगे (दोनों एक ही तरह काम करते हैं)। शुरुआत के लिए एक वेरिएबल और अंत के लिए एक लेना। और दोनों तत्वों को स्वैप करना। शुरुआत वेरिएबल को बढ़ाएं और अंत वेरिएबल को घटाएं। स्वैपिंग तब तक जारी रहेगी जब तक शुरुआत वेरिएबल का मान अंत वेरिएबल से कम है।
प्रोग्राम दो तरीकों से बनाया जा सकता है, एक पुनरावृत्तिक और दूसरा रिकर्सिव। हम दोनों विधियों के कार्य को दर्शाने वाला प्रोग्राम बनाएंगे।
उदाहरण
विधि 1: पुनरावृत्तिक दृष्टिकोण
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 << "Original 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;
}
आउटपुट
Original Array: 6 9 1 4 0 5 Reversed array: 5 0 4 1 9 6
उदाहरण
विधि 2: रिकर्सिव दृष्टिकोण
#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 << "Original 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;
}
आउटपुट
Original Array: 6 9 1 4 0 5 Reversed array: 5 0 4 1 9 6