Эффективно изменить порядок слов (не символов) в массиве символов - PullRequest
15 голосов
/ 06 сентября 2008

Учитывая массив символов, который формирует предложение слов, дайте эффективный алгоритм, чтобы изменить порядок слов (не символов) в нем.

Пример ввода и вывода:

>>> reverse_words("this is a string")
'string a is this'

Это должно быть время O (N) и пространство O (1) (split() и вставлять / выталкивать из стека нельзя).

Головоломка взята у здесь .

Ответы [ 21 ]

0 голосов
/ 06 сентября 2008
using System;

namespace q47407
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            string s = Console.ReadLine();
            string[] r = s.Split(' ');
            for(int i = r.Length-1 ; i >= 0; i--)
                Console.Write(r[i] + " ");
            Console.WriteLine();

        }
    }
}

edit: я думаю, мне следует прочитать весь вопрос ... продолжить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...