Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
UPi
#1

и опять директива {$H+}...проблема с длинными строками

20.01.2012, 10:17. Просмотров 859. Ответов 4
Метки нет (Все метки)

задача
код программы моей
в общем, кажется у меня опять проблема с длинными строками..
программа свалилась с 11 теста...
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2012, 10:17
Ответы с готовыми решениями:

Модуль для работы с длинными числами.
Модуль. Разработать набор подпрограмм для работы с длинными неотрицательными числами (числами,...

Операции с длинными строками (аналог BigInteger в Java)
Первый вопрос возник как исключить ограничение на длину вводимой строки. Правильно ли я понимаю,...

Опять проблема с растягиваемой кнопкой
«Есть таблица из двух столбцов: в первом - многострочный тест, во втором - кнопка...

Опять таблицы(JTable) - проблема заголовков
Здавствуйте. опять у меня вопрос по поводу JTable. Может кто знает как можно убрать заголовоки у...

Опять-таки проблема с Excel (экспорт)
Люди, выручайте! Я прочитал уже наверное все советы по этой теме, но все-равно что-то не...

4
Gluhow
15 / 15 / 15
Регистрация: 12.11.2011
Сообщений: 140
20.01.2012, 23:15 #2
А можно условие задачи в каком-нибудь читаемом виде? Что за 11ый тест?
У меня при запуске с входом
;----
выдает 0, ошибок не показывает
0
UPi
21.01.2012, 16:36 #3
Данная задача решается методом "конечного автомата":
В переменную Rez будем записывать количество найденных смайликов (изначально Rez = 0)
Посимвольно проанализируем полученную на вход строку. Пускай какая-нибудь переменная хранит текущее состояние "автомата":
0 - ожидается ввод ':'
1 - ожидается ввод '-', '(', ')', '[', ']'
Тогда алгоритм обработки символа конечным автоматом будет следующий:
1)На вход символ ':':
Переходим в состояние 1
2)На вход символ '-':
Если текущее состояние не равно 1, то переходим в состояние 0, иначе переходим к следующему символу;
3)На вход символ '(', ')', '[' или ']':
Если текущее состояние равно 1, то увеличиваем Rez на 1;
Переходим в состояние 0;
4)На вход символ отличный от вышеперечисленных:
Переходим в состояние 0

После однократного прохода по строке в переменной Rez будет ответ на поставленный вопрос :--))
Максимальное время работы на одном тесте:
1 секунда
Максимальный объем используемой памяти:
64 мегабайта


Напишите программу, которая посчитает количество смайликов в заданном тексте.

Смайликом будем считать последовательность символов, удовлетворяющую условиям:

первым символом является либо ; (точка с запятой) либо : (двоеточие) ровно один раз
далее может идти символ – (минус) сколько угодно раз (в том числе символ минус может идти ноль раз)
в конце обязательно идет некоторое количество (не меньше одной) одинаковых скобок из следующего набора: (, ), [, ].
внутри смайлика не может встречаться никаких других символов.
Например, нижеприведенные последовательности являются смайликами:



;---------[[[[[[[[

в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики):

:-)]

;--

-)

::-(

:-()

В этой задаче надо будет посчитать количество смайликов, содержащихся в данном тексте.

Формат входных данных
Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает 100 000 символов.

Формат выходных данных
Выведите одно число — количество смайликов, которые встречаются в тексте.

Примеры
Входные данные
Выходные данные
;------[[[[[]

2

:-)];----;

1

-)(---:---

0

hello :-)

1
UPi
21.01.2012, 16:37 #4
я и сама не знаю что за 11ый тест =]
UPi
21.01.2012, 16:39 #5
Цитата Сообщение от UPi Посмотреть сообщение
Данная задача решается методом "конечного автомата":
В переменную Rez будем записывать количество найденных смайликов (изначально Rez = 0)
Посимвольно проанализируем полученную на вход строку. Пускай какая-нибудь переменная хранит текущее состояние "автомата":
0 - ожидается ввод ':'
1 - ожидается ввод '-', '(', ')', '[', ']'
Тогда алгоритм обработки символа конечным автоматом будет следующий:
1)На вход символ ':':
Переходим в состояние 1
2)На вход символ '-':
Если текущее состояние не равно 1, то переходим в состояние 0, иначе переходим к следующему символу;
3)На вход символ '(', ')', '[' или ']':
Если текущее состояние равно 1, то увеличиваем Rez на 1;
Переходим в состояние 0;
4)На вход символ отличный от вышеперечисленных:
Переходим в состояние 0

После однократного прохода по строке в переменной Rez будет ответ на поставленный вопрос :--))
я не изучала автомат....
21.01.2012, 16:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2012, 16:39

Опять наболевшая проблема с закрытием Excel, Предложеные способы не раб.
Эта проблема неоднократно поднималась на форуме, я все перечитал, но НИЧЕГО НЕ РАБОТАЕТ??!! Не...

Проблема со строками
Доброго всем времени суток. Помогите пожалуйста решить несложную задачку. Суть такова. Я пытаюсь...

Проблема со строками
Добрый день. Нужна Ваша помощь в решении проблемы с задачкой по строкам. Ато сиджу несколько дней и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru