برنامه معکوس کردن رشته و آرایه — به زبان ساده
۶۷۴۴ بازدید
آخرین بهروزرسانی: ۱۸ اردیبهشت ۱۴۰۲
زمان مطالعه: ۷ دقیقه
در این مطلب، روش نوشتن برنامه معکوس کردن رشته و آرایه آموزش داده شده و سپس، پیادهسازی آن در زبانهای برنامهنویسی گوناگون شامل ++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
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 است.
روش بازگشتی برای معکوس کردن رشته و آرایه
- اندیسهای شروع و پایان را به صورت start = 0 و end = n-1 مقداردهی اولیه کن.
- [arr[start را با [arr[end جا به جا کن.
- به طور بازگشتی، 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 است.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامه نویسی
- آموزش ساختمان دادهها
- مجموعه آموزشهای ساختمان داده و طراحی الگوریتم
- رنگآمیزی گراف به روش حریصانه — به زبان ساده
- الگوریتم دایجسترا (Dijkstra) — از صفر تا صد
- الگوریتم پریم — به زبان ساده
^^
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
GeeksforGeekshttps://b.fdrs.ir/1b7
با سلام.مطالبتون خیلی مفیده.ممنون.فقط من یه سوال داشتم.
اگر رشته ای به صورت زیر داشته باشیم و بخواهیم رشته داخل هر پرانتز را معکوس کنیم در سی شارپ چگونه باید برنامه اش را بنویسیم؟
مثلا
foo(bar(baz))blim
و خروجی به ما رشته زیر را بدهد
foobazrabblim
ممنون میشم اگه پاسخ بدید