如何使用递归来反转字符串? [关闭]

问题描述 投票:-7回答:1

如何将此方法转换为递归方法?我无法定义基本条件和结束条件。如何减少或增加结束条件以满足基本条件?

private string ReverseString(string s)
    {
        char[] array = new char[s.Length];
        int index = 0;
        for (int i = s.Length - 1; i >= 0; i--)
        {
            array[index++] = s[i];
        }
        return new string(array);
    }

使用stringbuilder

     private string ReverseLetter(string letter)
    {            //copy to stack           
        Stack<char> stack = new Stack<char>();
        foreach (char ch in letter)
            stack.Push(ch);
        //read the stack into a string          
        StringBuilder sb = new StringBuilder(10);
        while (stack.Count > 0)
        {
            sb.Append(stack.Pop());
        }

        return sb.ToString();
      }
c# arrays string recursion reverse
1个回答
1
投票

如果你想使用递归方法,为什么要在其中使用循环...?

我编写了一个简单的方法,它使用递归返回反向字符串。

public string ReverseString(string s)
    {
        if (s == null || s.Length <= 1)  // if length is less or equal 1 then also returns
            return s;

        return ReverseString(s.Substring(1)) + s[0];
    }

输出示例附:enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.