برنامه معکوس کردن رشته و آرایه — به زبان ساده

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

در این مطلب، روش نوشتن برنامه معکوس کردن رشته و آرایه آموزش داده شده و سپس، پیاده‌سازی آن در زبان‌های برنامه‌نویسی گوناگون شامل ++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}

روش تکرار شونده برای معکوس کردن رشته و آرایه

  1. اندیس‌های شروع و پایان را به صورت start = 0 و end = n-1 مقداردهی اولیه کن.
  2. در حلقه، [arr[start را با [arr[end جا به جا کن و start و end را به صورت زیر تغییر بده:

start = start +1, end = end – 1

مثالی از معکوس کردن آرایه:

برنامه معکوس کردن رشته و آرایه

مثالی از معکوس کردن رشته:

برنامه معکوس کردن رشته و آرایه

برنامه معکوس کردن رشته و آرایه در ++C

1// Iterative C++ program to reverse an array 
2#include <bits/stdc++.h> 
3using namespace std; 
4  
5/* Function to reverse arr[] from start to end*/
6void rvereseArray(int arr[], int start, int end) 
7{ 
8    while (start < end) 
9    { 
10        int temp = arr[start];  
11        arr[start] = arr[end]; 
12        arr[end] = temp; 
13        start++; 
14        end--; 
15    }  
16}      
17  
18/* Utility function to print an array */
19void printArray(int arr[], int size) 
20{ 
21   for (int i = 0; i < size; i++) 
22   cout << arr[i] << " "; 
23  
24   cout << endl; 
25}  
26  
27/* Driver function to test above functions */
28int main()  
29{ 
30    int arr[] = {1, 2, 3, 4, 5, 6}; 
31      
32    int n = sizeof(arr) / sizeof(arr[0]);  
33  
34    // To print original array  
35    printArray(arr, n); 
36      
37    // Function calling 
38    rvereseArray(arr, 0, n-1); 
39      
40    cout << "Reversed array is" << endl; 
41      
42    // To print the Reversed array 
43    printArray(arr, n); 
44      
45    return 0; 
46}

برنامه معکوس کردن آرایه در C

1// Iterative C program to reverse an array 
2#include<stdio.h> 
3  
4/* Function to reverse arr[] from start to end*/
5void rvereseArray(int arr[], int start, int end) 
6{ 
7    int temp; 
8    while (start < end) 
9    { 
10        temp = arr[start];    
11        arr[start] = arr[end]; 
12        arr[end] = temp; 
13        start++; 
14        end--; 
15    }    
16}      
17  
18/* Utility that prints out an array on a line */
19void printArray(int arr[], int size) 
20{ 
21  int i; 
22  for (i=0; i < size; i++) 
23    printf("%d ", arr[i]); 
24  
25  printf("\n"); 
26}  
27  
28/* Driver function to test above functions */
29int main()  
30{ 
31    int arr[] = {1, 2, 3, 4, 5, 6}; 
32    int n = sizeof(arr) / sizeof(arr[0]);  
33    printArray(arr, n); 
34    rvereseArray(arr, 0, n-1); 
35    printf("Reversed array is \n"); 
36    printArray(arr, n);     
37    return 0; 
38}

برنامه معکوس کردن رشته و آرایه در جاوا

1// Iterative java program to reverse an 
2// array 
3public class GFG { 
4      
5   /* Function to reverse arr[] from  
6    start to end*/
7    static void rvereseArray(int arr[], 
8                    int start, int end) 
9    { 
10        int temp; 
11           
12        while (start < end) 
13        { 
14            temp = arr[start];  
15            arr[start] = arr[end]; 
16            arr[end] = temp; 
17            start++; 
18            end--; 
19        }  
20    }      
21       
22    /* Utility that prints out an 
23    array on a line */
24    static void printArray(int arr[],  
25                            int size) 
26    { 
27        for (int i = 0; i < size; i++) 
28             System.out.print(arr[i] + " "); 
29           
30         System.out.println(); 
31    }  
32  
33    // Driver code 
34    public static void main(String args[]) { 
35          
36        int arr[] = {1, 2, 3, 4, 5, 6}; 
37        printArray(arr, 6); 
38        rvereseArray(arr, 0, 5); 
39        System.out.print("Reversed array is \n"); 
40        printArray(arr, 6);  
41         
42    } 
43} 
44  
45// This code is contributed by Sam007

برنامه معکوس کردن رشته و آرایه در پایتون

1# Iterative python program to reverse an array 
2  
3# Function to reverse A[] from start to end 
4def reverseList(A, start, end): 
5    while start < end: 
6        A[start], A[end] = A[end], A[start] 
7        start += 1
8        end -= 1
9  
10# Driver function to test above function 
11A = [1, 2, 3, 4, 5, 6] 
12print(A) 
13reverseList(A, 0, 5) 
14print("Reversed list is") 
15print(A) 
16# This program is contributed by Pratik Chhajer

برنامه معکوس کردن رشته و آرایه در #C

1// Iterative C# program to reverse an 
2// array 
3using System; 
4  
5class GFG { 
6  
7    /* Function to reverse arr[] from  
8    start to end*/
9    static void rvereseArray(int []arr, 
10                    int start, int end) 
11    { 
12        int temp; 
13          
14        while (start < end) 
15        { 
16            temp = arr[start];  
17            arr[start] = arr[end]; 
18            arr[end] = temp; 
19            start++; 
20            end--; 
21        }  
22    }      
23      
24    /* Utility that prints out an 
25    array on a line */
26    static void printArray(int []arr,  
27                            int size) 
28    { 
29        for (int i = 0; i < size; i++) 
30            Console.Write(arr[i] + " "); 
31          
32        Console.WriteLine(); 
33    }  
34      
35    // Driver function 
36    public static void Main() 
37    { 
38        int []arr = {1, 2, 3, 4, 5, 6}; 
39        printArray(arr, 6); 
40        rvereseArray(arr, 0, 5); 
41        Console.Write("Reversed array is \n"); 
42        printArray(arr, 6);  
43    } 
44} 
45  
46// This code is contributed by Sam007

برنامه معکوس کردن رشته و آرایه در PHP

1<?php  
2// Iterative PHP program  
3// to reverse an array 
4  
5/* Function to reverse  
6$arr from start to end*/
7function rvereseArray(&$arr, $start,  
8                       $end) 
9{ 
10    while ($start < $end) 
11    { 
12        $temp = $arr[$start];  
13        $arr[$start] = $arr[$end]; 
14        $arr[$end] = $temp; 
15        $start++; 
16        $end--; 
17    }  
18}      
19  
20/* Utility function to  
21   print an array */
22function printArray(&$arr, $size) 
23{ 
24for ($i = 0; $i < $size; $i++) 
25echo $arr[$i] . " "; 
26  
27echo "\n"; 
28}  
29  
30// Driver code 
31$arr = array(1, 2, 3, 4, 5, 6); 
32  
33// To print original array 
34printArray($arr, 6); 
35  
36// Function calling 
37rvereseArray($arr, 0, 5); 
38  
39echo "Reversed array is" ."\n"; 
40  
41// To print the Reversed array 
42printArray($arr, 6); 
43  
44// This code is contributed 
45// by ChitraNayal 
46?>

خروجی قطعه کدهای بالا، در ادامه آمده است.

1 2 3 4 5 6 
Reversed array is 
6 5 4 3 2 1

پیچیدگی زمانی این روش از درجه (O(n است.

روش بازگشتی برای معکوس کردن رشته و آرایه

  1. اندیس‌های شروع و پایان را به صورت start = 0 و end = n-1 مقداردهی اولیه کن.
  2.  [arr[start را با [arr[end جا به جا کن.
  3. به طور بازگشتی، reverse را برای بقیه آرایه فراخوانی کن.

در ادامه، پیاده‌سازی روش بازگشتی برای معکوس کردن آرایه ارائه شده است.

برنامه معکوس کردن رشته و آرایه در ++C

1// Recursive C++ program to reverse an array 
2#include <bits/stdc++.h> 
3using namespace std; 
4  
5/* Function to reverse arr[] from start to end*/
6void rvereseArray(int arr[], int start, int end) 
7{ 
8    if (start >= end) 
9    return; 
10      
11    int temp = arr[start];  
12    arr[start] = arr[end]; 
13    arr[end] = temp; 
14      
15    // Recursive Function calling 
16    rvereseArray(arr, start + 1, end - 1);  
17}      
18  
19  
20/* Utility function to print an array */
21void printArray(int arr[], int size) 
22{ 
23   for (int i = 0; i < size; i++) 
24   cout << arr[i] << " "; 
25  
26   cout << endl; 
27}  
28  
29/* Driver function to test above functions */
30int main()  
31{ 
32    int arr[] = {1, 2, 3, 4, 5, 6}; 
33      
34    // To print original array 
35    printArray(arr, 6); 
36      
37    // Function calling 
38    rvereseArray(arr, 0, 5); 
39      
40    cout << "Reversed array is" << endl; 
41      
42    // To print the Reversed array 
43    printArray(arr, 6); 
44      
45    return 0; 
46}

برنامه معکوس کردن رشته و آرایه در C

1// Recursive C program to reverse an array 
2#include <stdio.h> 
3  
4/* Function to reverse arr[] from start to end*/
5void rvereseArray(int arr[], int start, int end) 
6{ 
7   int temp; 
8   if (start >= end) 
9     return; 
10   temp = arr[start];    
11   arr[start] = arr[end]; 
12   arr[end] = temp; 
13   rvereseArray(arr, start+1, end-1);    
14}      
15  
16/* Utility that prints out an array on a line */
17void printArray(int arr[], int size) 
18{ 
19  int i; 
20  for (i=0; i < size; i++) 
21    printf("%d ", arr[i]); 
22  
23  printf("\n"); 
24}  
25  
26/* Driver function to test above functions */
27int main()  
28{ 
29    int arr[] = {1, 2, 3, 4, 5, 6}; 
30    printArray(arr, 6); 
31    rvereseArray(arr, 0, 5); 
32    printf("Reversed array is \n"); 
33    printArray(arr, 6);     
34    return 0; 
35}

برنامه معکوس کردن رشته و آرایه در جاوا

1// Recursive Java Program to reverse an array 
2import java.io.*; 
3  
4class ReverseArray { 
5  
6    /* Function to reverse arr[] from start to end*/
7    static void rvereseArray(int arr[], int start, int end) 
8    { 
9        int temp; 
10        if (start >= end) 
11            return; 
12        temp = arr[start]; 
13        arr[start] = arr[end]; 
14        arr[end] = temp; 
15        rvereseArray(arr, start+1, end-1); 
16    } 
17  
18    /* Utility that prints out an array on a line */
19    static void printArray(int arr[], int size) 
20    { 
21        for (int i=0; i < size; i++) 
22            System.out.print(arr[i] + " "); 
23        System.out.println(""); 
24    } 
25  
26    /*Driver function to check for above functions*/
27    public static void main (String[] args) { 
28        int arr[] = {1, 2, 3, 4, 5, 6}; 
29        printArray(arr, 6); 
30        rvereseArray(arr, 0, 5); 
31        System.out.println("Reversed array is "); 
32        printArray(arr, 6); 
33    } 
34} 
35/*This article is contributed by Devesh Agrawal*/

برنامه معکوس کردن رشته و آرایه در پایتون

1# Recursive python program to reverse an array 
2  
3# Function to reverse A[] from start to end 
4def reverseList(A, start, end): 
5    if start >= end: 
6        return
7    A[start], A[end] = A[end], A[start] 
8    reverseList(A, start+1, end-1) 
9  
10# Driver function to test above function 
11A = [1, 2, 3, 4, 5, 6] 
12print(A) 
13reverseList(A, 0, 5) 
14print("Reversed list is") 
15print(A) 
16# This program is contributed by Pratik Chhajer

برنامه معکوس کردن رشته و آرایه در #C

1// C# program to reverse an array 
2using System; 
3  
4class GFG 
5{ 
6    /* Function to reverse arr[]  
7    from start to end*/
8    static void rvereseArray(int []arr, int start, 
9                                        int end) 
10    { 
11        int temp; 
12        if (start >= end) 
13            return; 
14              
15        temp = arr[start]; 
16        arr[start] = arr[end]; 
17        arr[end] = temp; 
18          
19        rvereseArray(arr, start+1, end-1); 
20    } 
21  
22    /* Utility that prints out an  
23    array on a line */
24    static void printArray(int []arr, int size) 
25    { 
26        for (int i =  0; i < size; i++) 
27            Console.Write(arr[i] + " "); 
28      
29        Console.WriteLine(""); 
30    } 
31  
32    // Driver Code 
33    public static void Main ()  
34    { 
35        int []arr = {1, 2, 3, 4, 5, 6}; 
36          
37        printArray(arr, 6); 
38        rvereseArray(arr, 0, 5); 
39          
40        Console.WriteLine("Reversed array is "); 
41        printArray(arr, 6); 
42    } 
43} 
44  
45// This code is contributed by Sam007

برنامه معکوس کردن رشته و آرایه در PHP

1<?php  
2// Iterative PHP program  
3// to reverse an array 
4  
5/* Function to reverse 
6$arr from start to end*/
7function rvereseArray(&$arr,  
8                       $start, $end) 
9{ 
10    if ($start >= $end) 
11    return; 
12      
13    $temp = $arr[$start];  
14    $arr[$start] = $arr[$end]; 
15    $arr[$end] = $temp; 
16  
17    //Recursive Function calling 
18    rvereseArray($arr, $start + 1, 
19                       $end - 1);  
20}      
21  
22/* Utility function  
23to print an array */
24function printArray(&$arr, $size) 
25{ 
26for ($i = 0; $i < $size; $i++) 
27echo $arr[$i] . " "; 
28  
29echo "\n"; 
30}  
31  
32// Driver code 
33$arr = array(1, 2, 3, 4, 5, 6); 
34  
35// To print original array 
36printArray($arr, 6); 
37  
38// Function calling 
39rvereseArray($arr, 0, 5); 
40  
41echo "Reversed array is" ."\n"; 
42  
43// To print the Reversed array 
44printArray($arr, 6); 
45  
46// This code is contributed 
47// by ChitraNayal 
48?>

خروجی قطعه کدهای بالا، به صورت زیر است.

1 2 3 4 5 6 
Reversed array is 
6 5 4 3 2 1

پیچیدگی زمانی این روش نیز از درجه (O(n است.

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
GeeksforGeeks
۱ دیدگاه برای «برنامه معکوس کردن رشته و آرایه — به زبان ساده»

با سلام.مطالبتون خیلی مفیده.ممنون.فقط من یه سوال داشتم.
اگر رشته ای به صورت زیر داشته باشیم و بخواهیم رشته داخل هر پرانتز را معکوس کنیم در سی شارپ چگونه باید برنامه اش را بنویسیم؟
مثلا
foo(bar(baz))blim
و خروجی به ما رشته زیر را بدهد
foobazrabblim
ممنون میشم اگه پاسخ بدید

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *