(算法题)单词逆序

来源:互联网 发布:北大青鸟消防编程公式 编辑:程序博客网 时间:2024/04/30 10:32

题目描述:

        将一个句子的单词逆序输出来:

输入:I am a boy!(用一个空格间隔这些单词)

输出:boy! a am I

=============================================================

       对于这个问题,我们可以用递归来实现,如,当输入为I am a boy!的时候其等价于am a boy!先逆序,再输出单词I.因此,

using System;namespace LilacFlower{    class Program    {        /// <summary>        /// 将一个句子逆序输出        /// </summary>        /// <param name="data">需要逆序的句子</param>        /// <param name="start">开始的位置</param>        private static void Reverse(char[] data, int start)        {            if (start >= data.Length)            {                return;            }            // 找到第一个空格位置            var begin = start;            while (begin < data.Length && data[begin++] != ' ') ;            // 递归后面的句子            Reverse(data, begin);            //输出从start开始的单词            while (start < data.Length && data[start] != ' ')            {                Console.Write(data[start++]);            }            Console.Write(" ");        }        static void Main(string[] args)        {            Reverse("I  am a boy!".ToCharArray(), 0);        }    }}

运行结果:

 

原创粉丝点击