مستر کد
mrcode.wikibix.ir

یک برنامه بازگشتی بنویسید که یک string ورودی را گرفته و آن را برعکس (reverse) کند

نویسنده : رضا قربانی | زمان انتشار : 29 دی 1400 ساعت 12:18

جهت انجام پروژه های دانشجویی و یا تمرین‌های برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید

@AlirezaSepand



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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

// Iterative C++ program to reverse an array

#include <bits/stdc++.h>

usingnamespacestd;

/* Function to reverse arr[] from start to end*/

voidrvereseArray(intarr[],intstart,intend)

{

    while(start<end)

    {

        inttemp=arr[start];  

        arr[start]=arr[end];

        arr[end]=temp;

        start++;

        end--;

    }  

}      

/* Utility function to print an array */

voidprintArray(intarr[],intsize)

{

   for(inti=0;i<size;i++)

   cout<<arr[i]<<" ";

   cout<<endl;

}  

/* Driver function to test above functions */

intmain()  

{

    intarr[]={1,2,3,4,5,6};

    intn=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);

    return0;

}

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

// Iterative C program to reverse an array

#include<stdio.h>

/* Function to reverse arr[] from start to end*/

voidrvereseArray(intarr[],intstart,intend)

{

    inttemp;

    while(start<end)

    {

        temp=arr[start];    

        arr[start]=arr[end];

        arr[end]=temp;

        start++;

        end--;

    }    

}      

/* Utility that prints out an array on a line */

voidprintArray(intarr[],intsize)

{

  inti;

  for(i=0;i<size;i++)

    printf("%d ",arr[i]);

  printf("\n");

}  

/* Driver function to test above functions */

intmain()  

{

    intarr[]={1,2,3,4,5,6};

    intn=sizeof(arr)/sizeof(arr[0]);  

    printArray(arr,n);

    rvereseArray(arr,0,n-1);

    printf("Reversed array is \n");

    printArray(arr,n);    

    return0;

}

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

// Iterative java program to reverse an

// array

publicclassGFG{

   /* Function to reverse arr[] from  

    start to end*/

    staticvoidrvereseArray(intarr[],

                    intstart,intend)

    {

        inttemp;

        while(start<end)

        {

            temp=arr[start];  

            arr[start]=arr[end];

            arr[end]=temp;

            start++;

            end--;

        }  

    }      

    /* Utility that prints out an

    array on a line */

    staticvoidprintArray(intarr[],  

                            intsize)

    {

        for(inti=0;i<size;i++)

             System.out.print(arr[i]+" ");

         System.out.println();

    }  

    // Driver code

    publicstaticvoidmain(Stringargs[]){

        intarr[]={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

defreverseList(A,start,end):

    whilestart<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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

// Iterative C# program to reverse an

// array

usingSystem;

classGFG{

    /* Function to reverse arr[] from  

    start to end*/

    staticvoidrvereseArray(int[]arr,

                    intstart,intend)

    {

        inttemp;

        while(start<end)

        {

            temp=arr[start];  

            arr[start]=arr[end];

            arr[end]=temp;

            start++;

            end--;

        }  

    }      

    /* Utility that prints out an

    array on a line */

    staticvoidprintArray(int[]arr,  

                            intsize)

    {

        for(inti=0;i<size;i++)

            Console.Write(arr[i]+" ");

        Console.WriteLine();

    }  

    // Driver function

    publicstaticvoidMain()

    {

        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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

<?php  

// Iterative PHP program  

// to reverse an array

/* Function to reverse  

$arr from start to end*/

functionrvereseArray(&$arr, $start,  

                       $end)

{

    while ($start < $end)

    {

        $temp = $arr[$start];  

        $arr[$start]=$arr[$end];

        $arr[$end]=$temp;

        $start++;

        $end--;

    }  

}      

/* Utility function to  

   print an array */

functionprintArray(&$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

?>

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

123456

Reversed arrayis

654321

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

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

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

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

// Recursive C++ program to reverse an array

#include <bits/stdc++.h>

usingnamespacestd;

/* Function to reverse arr[] from start to end*/

voidrvereseArray(intarr[],intstart,intend)

{

    if(start>=end)

    return;

    inttemp=arr[start];  

    arr[start]=arr[end];

    arr[end]=temp;

    // Recursive Function calling

    rvereseArray(arr,start+1,end-1);  

}      

/* Utility function to print an array */

voidprintArray(intarr[],intsize)

{

   for(inti=0;i<size;i++)

   cout<<arr[i]<<" ";

   cout<<endl;

}  

/* Driver function to test above functions */

intmain()  

{

    intarr[]={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);

    return0;

}

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

// Recursive C program to reverse an array

#include <stdio.h>

/* Function to reverse arr[] from start to end*/

voidrvereseArray(intarr[],intstart,intend)

{

   inttemp;

   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 */

voidprintArray(intarr[],intsize)

{

  inti;

  for(i=0;i<size;i++)

    printf("%d ",arr[i]);

  printf("\n");

}  

/* Driver function to test above functions */

intmain()  

{

    intarr[]={1,2,3,4,5,6};

    printArray(arr,6);

    rvereseArray(arr,0,5);

    printf("Reversed array is \n");

    printArray(arr,6);    

    return0;

}

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

// Recursive Java Program to reverse an array

importjava.io.*;

classReverseArray{

    /* Function to reverse arr[] from start to end*/

    staticvoidrvereseArray(intarr[],intstart,intend)

    {

        inttemp;

        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 */

    staticvoidprintArray(intarr[],intsize)

    {

        for(inti=0;i<size;i++)

            System.out.print(arr[i]+" ");

        System.out.println("");

    }

    /*Driver function to check for above functions*/

    publicstaticvoidmain(String[]args){

        intarr[]={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

defreverseList(A,start,end):

    ifstart>=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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

// C# program to reverse an array

usingSystem;

classGFG

{

    /* Function to reverse arr[]  

    from start to end*/

    staticvoidrvereseArray(int[]arr,intstart,

                                        intend)

    {

        inttemp;

        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 */

    staticvoidprintArray(int[]arr,intsize)

    {

        for(inti=  0;i<size;i++)

            Console.Write(arr[i]+" ");

        Console.WriteLine("");

    }

    // Driver Code

    publicstaticvoidMain()  

    {

        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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

<?php  

// Iterative PHP program  

// to reverse an array

/* Function to reverse

$arr from start to end*/

functionrvereseArray(&$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 */

functionprintArray(&$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

?>

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

123456

Reversed arrayis

654321

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

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

^^

الهام حصارکی (+)

«الهام حصارکی»، فارغ‌التحصیل مقطع کارشناسی ارشد مهندسی فناوری اطلاعات، گرایش سیستم‌های اطلاعات مدیریت است. او در زمینه هوش مصنوعی و داده‌کاوی، به ویژه تحلیل شبکه‌های اجتماعی، فعالیت می‌کند.

بر اساس رای 6 نفر

آیا این مطلب برای شما مفید بود؟


منبع: blog.faradars.org