برنامه معکوس کردن رشته و آرایه — به زبان ساده
۹۹۶ بازدید
آخرین بهروزرسانی:
۱۸ اردیبهشت ۱۴۰۲
زمان مطالعه:
۷ دقیقه

در این مطلب، روش نوشتن برنامه معکوس کردن رشته و آرایه آموزش داده شده و سپس، پیادهسازی آن در زبانهای برنامهنویسی گوناگون شامل ++C، «جاوا» (Java)، «پایتون» (Python)، «سیشارپ» (#C) و «پیاچپی» (PHP) انجام شده است. در اینجا هدف آن است که یک آرایه (رشته) ورودی معکوس و در خروجی، آرایه/رشته معکوس شده چاپ شود. مثال زیر در این راستا قابل توجه است.
فهرست مطالب این نوشته
Input : arr[] = {1, 2, 3} Output : arr[] = {3, 2, 1} Input : arr[] = {4, 5, 1, 2} Output : arr[] = {2, 1, 5, 4}
روش تکرار شونده برای معکوس کردن رشته و آرایه
- اندیسهای شروع و پایان را به صورت start = 0 و end = n-1 مقداردهی اولیه کن.
- در حلقه، [arr[start را با [arr[end جا به جا کن و start و end را به صورت زیر تغییر بده:
start = start +1, end = end – 1
مثالی از معکوس کردن آرایه:
مثالی از معکوس کردن رشته:
برنامه معکوس کردن رشته و آرایه در ++C
// Iterative C++ program to reverse an array #include <bits/stdc++.h> using namespace std; /* Function to reverse arr[] from start to end*/ void rvereseArray(int arr[], int start, int end) { while (start < end) { int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /* Utility function to print an array */ void printArray(int arr[], int size) { for (int i = 0; i < size; i++) cout << arr[i] << " "; cout << endl; } /* Driver function to test above functions */ int main() { int arr[] = {1, 2, 3, 4, 5, 6}; int n = sizeof(arr) / sizeof(arr[0]); // To print original array printArray(arr, n); // Function calling rvereseArray(arr, 0, n-1); cout << "Reversed array is" << endl; // To print the Reversed array printArray(arr, n); return 0; }
برنامه معکوس کردن آرایه در C
// Iterative C program to reverse an array #include<stdio.h> /* Function to reverse arr[] from start to end*/ void rvereseArray(int arr[], int start, int end) { int temp; while (start < end) { temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /* Utility that prints out an array on a line */ void printArray(int arr[], int size) { int i; for (i=0; i < size; i++) printf("%d ", arr[i]); printf("\n"); } /* Driver function to test above functions */ int main() { int arr[] = {1, 2, 3, 4, 5, 6}; int n = sizeof(arr) / sizeof(arr[0]); printArray(arr, n); rvereseArray(arr, 0, n-1); printf("Reversed array is \n"); printArray(arr, n); return 0; }
برنامه معکوس کردن رشته و آرایه در جاوا
// Iterative java program to reverse an // array public class GFG { /* Function to reverse arr[] from start to end*/ static void rvereseArray(int arr[], int start, int end) { int temp; while (start < end) { temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /* Utility that prints out an array on a line */ static void printArray(int arr[], int size) { for (int i = 0; i < size; i++) System.out.print(arr[i] + " "); System.out.println(); } // Driver code public static void main(String args[]) { int arr[] = {1, 2, 3, 4, 5, 6}; printArray(arr, 6); rvereseArray(arr, 0, 5); System.out.print("Reversed array is \n"); printArray(arr, 6); } } // This code is contributed by Sam007
برنامه معکوس کردن رشته و آرایه در پایتون
# Iterative python program to reverse an array # Function to reverse A[] from start to end def reverseList(A, start, end): while start < end: A[start], A[end] = A[end], A[start] start += 1 end -= 1 # Driver function to test above function A = [1, 2, 3, 4, 5, 6] print(A) reverseList(A, 0, 5) print("Reversed list is") print(A) # This program is contributed by Pratik Chhajer
برنامه معکوس کردن رشته و آرایه در #C
// Iterative C# program to reverse an // array using System; class GFG { /* Function to reverse arr[] from start to end*/ static void rvereseArray(int []arr, int start, int end) { int temp; while (start < end) { temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; start++; end--; } } /* Utility that prints out an array on a line */ static void printArray(int []arr, int size) { for (int i = 0; i < size; i++) Console.Write(arr[i] + " "); Console.WriteLine(); } // Driver function public static void Main() { int []arr = {1, 2, 3, 4, 5, 6}; printArray(arr, 6); rvereseArray(arr, 0, 5); Console.Write("Reversed array is \n"); printArray(arr, 6); } } // This code is contributed by Sam007
برنامه معکوس کردن رشته و آرایه در PHP
<?php // Iterative PHP program // to reverse an array /* Function to reverse $arr from start to end*/ function rvereseArray(&$arr, $start, $end) { while ($start < $end) { $temp = $arr[$start]; $arr[$start] = $arr[$end]; $arr[$end] = $temp; $start++; $end--; } } /* Utility function to print an array */ function printArray(&$arr, $size) { for ($i = 0; $i < $size; $i++) echo $arr[$i] . " "; echo "\n"; } // Driver code $arr = array(1, 2, 3, 4, 5, 6); // To print original array printArray($arr, 6); // Function calling rvereseArray($arr, 0, 5); echo "Reversed array is" ."\n"; // To print the Reversed array printArray($arr, 6); // This code is contributed // by ChitraNayal ?>
خروجی قطعه کدهای بالا، در ادامه آمده است.
1 2 3 4 5 6 Reversed array is 6 5 4 3 2 1
پیچیدگی زمانی این روش از درجه (O(n است.
روش بازگشتی برای معکوس کردن رشته و آرایه
- اندیسهای شروع و پایان را به صورت start = 0 و end = n-1 مقداردهی اولیه کن.
- [arr[start را با [arr[end جا به جا کن.
- به طور بازگشتی، reverse را برای بقیه آرایه فراخوانی کن.
در ادامه، پیادهسازی روش بازگشتی برای معکوس کردن آرایه ارائه شده است.
برنامه معکوس کردن رشته و آرایه در ++C
// Recursive C++ program to reverse an array #include <bits/stdc++.h> using namespace std; /* Function to reverse arr[] from start to end*/ void rvereseArray(int arr[], int start, int end) { if (start >= end) return; int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; // Recursive Function calling rvereseArray(arr, start + 1, end - 1); } /* Utility function to print an array */ void printArray(int arr[], int size) { for (int i = 0; i < size; i++) cout << arr[i] << " "; cout << endl; } /* Driver function to test above functions */ int main() { int arr[] = {1, 2, 3, 4, 5, 6}; // To print original array printArray(arr, 6); // Function calling rvereseArray(arr, 0, 5); cout << "Reversed array is" << endl; // To print the Reversed array printArray(arr, 6); return 0; }
برنامه معکوس کردن رشته و آرایه در C
// Recursive C program to reverse an array #include <stdio.h> /* Function to reverse arr[] from start to end*/ void rvereseArray(int arr[], int start, int end) { int temp; if (start >= end) return; temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; rvereseArray(arr, start+1, end-1); } /* Utility that prints out an array on a line */ void printArray(int arr[], int size) { int i; for (i=0; i < size; i++) printf("%d ", arr[i]); printf("\n"); } /* Driver function to test above functions */ int main() { int arr[] = {1, 2, 3, 4, 5, 6}; printArray(arr, 6); rvereseArray(arr, 0, 5); printf("Reversed array is \n"); printArray(arr, 6); return 0; }
برنامه معکوس کردن رشته و آرایه در جاوا
// Recursive Java Program to reverse an array import java.io.*; class ReverseArray { /* Function to reverse arr[] from start to end*/ static void rvereseArray(int arr[], int start, int end) { int temp; if (start >= end) return; temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; rvereseArray(arr, start+1, end-1); } /* Utility that prints out an array on a line */ static void printArray(int arr[], int size) { for (int i=0; i < size; i++) System.out.print(arr[i] + " "); System.out.println(""); } /*Driver function to check for above functions*/ public static void main (String[] args) { int arr[] = {1, 2, 3, 4, 5, 6}; printArray(arr, 6); rvereseArray(arr, 0, 5); System.out.println("Reversed array is "); printArray(arr, 6); } } /*This article is contributed by Devesh Agrawal*/
برنامه معکوس کردن رشته و آرایه در پایتون
# Recursive python program to reverse an array # Function to reverse A[] from start to end def reverseList(A, start, end): if start >= end: return A[start], A[end] = A[end], A[start] reverseList(A, start+1, end-1) # Driver function to test above function A = [1, 2, 3, 4, 5, 6] print(A) reverseList(A, 0, 5) print("Reversed list is") print(A) # This program is contributed by Pratik Chhajer
برنامه معکوس کردن رشته و آرایه در #C
// C# program to reverse an array using System; class GFG { /* Function to reverse arr[] from start to end*/ static void rvereseArray(int []arr, int start, int end) { int temp; if (start >= end) return; temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; rvereseArray(arr, start+1, end-1); } /* Utility that prints out an array on a line */ static void printArray(int []arr, int size) { for (int i = 0; i < size; i++) Console.Write(arr[i] + " "); Console.WriteLine(""); } // Driver Code public static void Main () { int []arr = {1, 2, 3, 4, 5, 6}; printArray(arr, 6); rvereseArray(arr, 0, 5); Console.WriteLine("Reversed array is "); printArray(arr, 6); } } // This code is contributed by Sam007
برنامه معکوس کردن رشته و آرایه در PHP
<?php // Iterative PHP program // to reverse an array /* Function to reverse $arr from start to end*/ function rvereseArray(&$arr, $start, $end) { if ($start >= $end) return; $temp = $arr[$start]; $arr[$start] = $arr[$end]; $arr[$end] = $temp; //Recursive Function calling rvereseArray($arr, $start + 1, $end - 1); } /* Utility function to print an array */ function printArray(&$arr, $size) { for ($i = 0; $i < $size; $i++) echo $arr[$i] . " "; echo "\n"; } // Driver code $arr = array(1, 2, 3, 4, 5, 6); // To print original array printArray($arr, 6); // Function calling rvereseArray($arr, 0, 5); echo "Reversed array is" ."\n"; // To print the Reversed array printArray($arr, 6); // This code is contributed // by ChitraNayal ?>
خروجی قطعه کدهای بالا، به صورت زیر است.
1 2 3 4 5 6 Reversed array is 6 5 4 3 2 1
پیچیدگی زمانی این روش نیز از درجه (O(n است.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامه نویسی
- آموزش ساختمان دادهها
- مجموعه آموزشهای ساختمان داده و طراحی الگوریتم
- رنگآمیزی گراف به روش حریصانه — به زبان ساده
- الگوریتم دایجسترا (Dijkstra) — از صفر تا صد
- الگوریتم پریم — به زبان ساده
^^
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
GeeksforGeeks
کپی شد
با سلام.مطالبتون خیلی مفیده.ممنون.فقط من یه سوال داشتم.
اگر رشته ای به صورت زیر داشته باشیم و بخواهیم رشته داخل هر پرانتز را معکوس کنیم در سی شارپ چگونه باید برنامه اش را بنویسیم؟
مثلا
foo(bar(baz))blim
و خروجی به ما رشته زیر را بدهد
foobazrabblim
ممنون میشم اگه پاسخ بدید