Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Valentin Kononov                     2:5035/38.9    30 Jan 2002  00:07:05
 To : Stanislav Aranovsky
 Subject : re: Посоветyйте алгоpитм, очень надо!!!
 -------------------------------------------------------------------------------- 
 
 Вcк Янв 27 2002 01:39, you wrote to Aleksey Nilov:
 
  AN>> Имеется задача:
  AN>> Дана стpока, состоящая из скобок 4-х видов (,),[,]
  AN>> Опpеделить минимальное число скобок, котоpые надо подставить в стpокy,
  AN>> чтобы она стала "пpавильной"...
  AN>> Hапpимеp:
  AN>> "[ ( ] )" - "непpавильная стpока"
  AN>> "[ ] ( [ ] )" - "пpавильная", полyченная пyтем подстановки в
  AN>> "непpав-ю" 2-х скобок! Интеpесyет алгоpитм... yсловие - сложность <=
  AN>> O(N*N), а желательно O(N*log N)
  SA>
  SA> В пpинципе, я тyт так подyмал, задача pешается за O(n) pекypсивным
  SA> методом.
 
   Во-первых, условие неоднозначно. Приведенную строчку можно исправить и
 так: "[ ( ) ] ( )" или так "[ ( [ ] ) ]". Так что стоит доопределить - есть
 ли иерархия у скобок, например. Hо O(N) хватит, ИМХО, в любом случае.
 1) Проще всего действовать тривиально:
 нашел скобку, подставь рядом (либо слева, либо справа) парную :))
 2) А реально примерно так. Держим стек, в который записываем все открывающиеся
 скобки. Если же находим закрывающуюся, смотрим верх стека. Если там скобка того 
 же типа, выкидываем ее, если другого или стек пуст, то ставим перед этой парную 
 открывающуюся. Когда строка кончится, вываливаем из стека все, что накопилось
 (разумеется, при записи или чтении каждую скобку надо перевернуть или просто
 писать туда 0-1) и идем за пивом.
 3) Если же задана иерархия, например, квадратные скобки не содержат круглых
 (как в авторском примере), то все еще проще: держим 2 счетчика открытых скобок, 
 если счетчик квадратных не пуст, то новых круглых открывать нельзя, а след-но,
 перед их открытием надо закрыть все квадратные.
 ЗЫ: В первом и третьем вариантах строка получится длиннее - в первом примерно в 
 1.5 раза, в 3-ем - в 1.25 (на глазок). А во втором - минимально необходимая
 длина (тоже раза в полтора больше исходной, неправильной строки).
 
  С уважением, Valentin
 
 --- * ---
  * Origin:  Пейте соки и нектары GSM  (Kursk 2:5035/38.9)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Посоветуйте алгоритм, очень надо!!!   Aleksey Nilov   24 Jan 2002 20:46:28 
 Re: Посоветуйте алгоритм, очень надо!!!   Grandalf Gray   25 Jan 2002 19:44:12 
 Re: Посоветуйте алгоритм, очень надо!!!   Grandalf Gray   25 Jan 2002 20:52:01 
 Re: Посоветуйте алгоритм, очень надо!!!   Aleksey Nilov   26 Jan 2002 03:00:47 
 Re^2: Посоветуйте алгоритм, очень надо!!!   Sergey Politov   26 Jan 2002 06:50:50 
 Посоветуйте алгоритм, очень надо!!!   Max Alekseyev   25 Jan 2002 23:15:54 
 Посоветуйте алгоритм, очень надо!!!   Max Alekseyev   26 Jan 2002 03:40:34 
 Посоветуйте алгоритм, очень надо!!!   Max Alekseyev   25 Jan 2002 22:08:58 
 Re: Посоветуйте алгоритм, очень надо!!!   Grandalf Gray   26 Jan 2002 12:46:42 
 Посоветуйте алгоритм, очень надо!!!   Max Alekseyev   26 Jan 2002 02:30:30 
 Re: Посоветуйте алгоритм, очень надо!!!   Grandalf Gray   26 Jan 2002 12:46:43 
 Посоветуйте алгоритм, очень надо!!!   Max Alekseyev   25 Jan 2002 22:04:28 
 Посоветуйте алгоритм, очень надо!!!   Aleksey Nilov   29 Jan 2002 01:53:54 
 Посоветуйте алгоритм, очень надо!!!   Max Alekseyev   28 Jan 2002 16:49:14 
 Re: Посоветуйте алгоритм, очень надо!!!   Sergey Politov   29 Jan 2002 06:34:29 
 Re: Посоветуйте алгоритм, очень надо!!!   Aleksey Nilov   31 Jan 2002 02:43:30 
 Re: Посоветуйте алгоритм, очень надо!!!   Ilya Potrepalov   31 Jan 2002 09:41:58 
 Re: Посоветуйте алгоритм, очень надо!!!   Ilya Potrepalov   31 Jan 2002 13:11:33 
 Re^2: Посоветуйте алгоритм, очень надо!!!   Sergey Politov   01 Feb 2002 06:43:50 
 Re: Re^2: Посоветуйте алгоритм, очень надо! !!   Ilya Potrepalov   01 Feb 2002 15:46:36 
 Посоветуйте алгоритм, очень надо!!!   Sergey Ezhov   26 Jan 2002 14:03:07 
 Посоветyйте алгоpитм, очень надо!!!   Stanislav Aranovsky   27 Jan 2002 02:28:38 
 Посоветyйте алгоpитм, очень надо!!!   Sergey Ezhov   27 Jan 2002 22:36:11 
 Посоветyйте алгоpитм, очень надо!!!   Stanislav Aranovsky   28 Jan 2002 14:08:18 
 Re: Посоветyйте алгоpитм, очень надо!!!   Sergey Politov   30 Jan 2002 07:23:33 
 Посоветyйте алгоpитм, очень надо!!!   Sergey Ezhov   30 Jan 2002 22:54:47 
 Посоветуйте алгоритм, очень надо!!!   Nickita A Startcev   30 Jan 2002 02:18:38 
 Посоветyйте алгоpитм, очень надо!!!   Stanislav Aranovsky   27 Jan 2002 02:39:02 
 Re: Посоветyйте алгоpитм, очень надо!!!   Sergey Politov   27 Jan 2002 06:23:28 
 Посоветyйте алгоpитм, очень надо!!!   Stanislav Aranovsky   28 Jan 2002 03:18:38 
 Re: Посоветyйте алгоpитм, очень надо!!!   Sergey Politov   28 Jan 2002 06:46:54 
 Посоветyйте алгоpитм, очень надо!!!   Stanislav Aranovsky   29 Jan 2002 15:25:24 
 Посоветyйте алгоpитм, очень надо!!!   Oleg Yanchenkov   30 Jan 2002 22:03:08 
 Посоветyйте алгоpитм, очень надо!!!   Stanislav Aranovsky   01 Feb 2002 02:45:34 
 re: Посоветyйте алгоpитм, очень надо!!!   Valentin Kononov   30 Jan 2002 00:07:05 
 Re: Посоветyйте алгоpитм, очень надо!!!   Andrew Ezhguroff   31 Jan 2002 01:40:00 
 Посоветyйте алгоpитм, очень надо!!!   Stanislav Aranovsky   31 Jan 2002 02:19:28 
 Re^2: Посоветyйте алгоpитм, очень надо!!!   Sergey Politov   31 Jan 2002 05:25:21 
 re: Посоветyйте алгоpитм, очень надо!!!   Valentin Kononov   31 Jan 2002 23:44:04 
 re:Посоветyйте алгоpитм, очень надо!!!   Valentin Kononov   04 Feb 2002 00:16:36 
 Re: re:Посоветyйте алгоpитм, очень надо!!!   Ilya Potrepalov   05 Feb 2002 07:58:56 
 Посоветyйте алгоpитм, очень надо!!!   Oleg Yanchenkov   28 Jan 2002 08:30:07 
 Re: Посоветyйте алгоpитм, очень надо!!!   Sergey Politov   29 Jan 2002 06:08:00 
 Посоветyйте алгоpитм, очень надо!!!   Stanislav Aranovsky   29 Jan 2002 15:27:40 
 Re: Посоветуйте алгоритм, очень надо!!!   Michael Leontyev   29 Jan 2002 14:46:19 
 Посоветyйте алгоpитм, очень надо!!!   Stanislav Aranovsky   30 Jan 2002 04:25:30 
 Re: Посоветyйте алгоpитм, очень надо!!!   Michael Leontyev   30 Jan 2002 10:45:03 
 Re^2: Посоветуйте алгоритм, очень надо!!!   Sergey Politov   30 Jan 2002 07:55:24 
 Посоветyйте алгоpитм, очень надо!!!   Oleg Yanchenkov   01 Feb 2002 00:31:21 
 Re: Посоветуйте алгоритм, очень надо!!!   Zapadinsky Anatoly \\(ZAB\\)   30 Jan 2002 18:06:09 
 Re: Посоветуйте алгоритм, очень надо!!!   Michael Leontyev   30 Jan 2002 18:59:35 
Архивное /ru.algorithms/28483c572fb7.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional