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

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

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

// 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 است.

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

  1. اندیس‌های شروع و پایان را به صورت start = 0 و end = n-1 مقداردهی اولیه کن.
  2.  [arr[start را با [arr[end جا به جا کن.
  3. به طور بازگشتی، 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 است.

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

^^

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
GeeksforGeeks
One thought on “برنامه معکوس کردن رشته و آرایه — به زبان ساده

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

نظر شما چیست؟

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