Блог пользователя Aydar

Автор Aydar, 13 лет назад, По-русски
Как можно написать с помошью конечных автоматов (Было бы классно если можно написать с помошью Детерминированных и недетерминированных конечных автоматов )

Дано массив слов String[] dir={"out","output","puton","in","input","one"};
если введенная строка состоит из этих слов то вывести "yes"
если нет то No

Ввод
oneputonininputoutoutput
Вывод
Yes

Ввод
inonputin
Вывод
No

Ввот ссылка на задачу http://acm.timus.ru/problem.aspx?space=1&num=1102
Написал с помошью регулярных выражений но хавает очень много памяти

Memory limit exceeded on test 1 Выделено памяти 16 630 КБ,а ограничение 16мб)!

http://www.cyberforum.ru/java-j2se/thread277924.html

  • Проголосовать: нравится
  • +1
  • Проголосовать: не нравится

13 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
с помошью регулярных выражений но хавает очень много памяти
13 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
В этой задаче не хватает в Java места под строку из-за того, что char имеет размер 16 бит. Я сдал задачу с помощью собственного автомата и прочитав строку в массив byte
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
кто-нить можете дать ссылку на статьи про конечные автоматы,не представляю как написать!
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится
    Можно даже видео глянуть. Второй день про автоматы.
    Ну а вообще - на вики есть для начала

    UPD. если у Вас нету языкового барьера - отличная книга на английском с псевдокодом реализации
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Что-то мне подсказывает, что это не правда, и что задача решается одинаково сложно с начала и с конца не зависимо от способа решения :о)

  • 13 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Не-а
    С конца нету ситуации, когда префикс разрешенной строки совпадает с другой разрешенной строкой
    • 13 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится

      Кто ж мог знать, что массив слов дан в условии ,а не подается на вход :о(

13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Я эту задачу из любопытства сдал таким образом:
1. Взял листок и нарисовал конечный автомат
2. Минимизировал его
3. Пронумеровал состояния
4. Написал что-то такое