如何使用递归来反转字符串?

时间:2019-03-19 06:17:03

标签: c# arrays string recursion reverse

如何将这种方法转换为递归方法?我在定义基本条件和结束条件时遇到了麻烦。如何减少或增加最终条件以满足基本条件?

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);
    }

使用字符串生成器

     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();
      }

1 个答案:

答案 0 :(得分: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