递归反转字符串C#

时间:2017-11-25 22:05:03

标签: c# recursion

我不知道我怎么不想直接回答我想知道我怎么能。 非常感谢提前。

class Program
{
    static void Main(string[] args)
     {
      Console.WriteLine("Enter a word or sentence to be reversed: ");
      string str = Console.ReadLine();
      Console.WriteLine("**********");
      Console.WriteLine("Your input is: ");
      Console.WriteLine(str);
      Console.ReadLine();//to give a little bit space between the outputs
      Console.WriteLine("************");
      Console.WriteLine("And it will be reversed as : ");
      //call the Recursive Function in the class Recursive
      str = Recursive.Recursive_Func(str);
      Console.WriteLine(str);
      Console.ReadLine();
   }
}


我们使用Substring从字符串中的n-1索引进行打印 并以字符串中的第一个索引结束它[0]。

class Recursive
{
    public static string Recursive_Func(string str)
    {
        if (str.Length <= 1) //the program base case
        {
            return str;
        }
        else
        {
            return Recursive_Func(str.Substring(1)) + str[0];
        }
    }
}

1 个答案:

答案 0 :(得分:-1)

好的,所以用英语。我在说什么...我相信下一个答案更简单易懂...而且行之有效!!! public static string MyReverse(string s) { if (s.Length == 1) { return s; } var firstLetter = s[0]; return MyReverse(s.Substring(1)) + firstLetter; }