![]() |
|
Модераторы: bsa |
![]()
|
|
| Sammi2186 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 22.11.2013 Репутация: нет Всего: нет |
Вводится текст-набор символов, конец - ".". Программа должна разбить его на слова (последовательности букв латинское алфавита, все другое - разделители) и сформировать несколько списков. В каждом списке информационное поле элементов содержит ссылку на очередное слово, причем последняя буква каждого слова должна совпадать с первой буквой следующего. Количество списков должно быть минимально возможным.
Подскажите, пожалуйста, что нужно сделать, каким образом? Не нужно писать код. Только идею. |
|||
|
||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: -1 Всего: 16 |
Взять плоскогубцы, и провести испытание давшэму задачу. Чтобы объяснил, например, каким образом "очередное" слово (вероятно, из введённого текста) будет совпадать своей последней буквой с первой буквой следующего -- если слова вместе со своей последовательностью у нас ужэ заданы.
Ну, и другие мелочи, которые будут зависеть от ответа на первый вопрос. PS << Когда же пытуемый впадает в беспамятство, испытание, не увлекаясь, прекратить…>> |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Sammi2186, задание не полное. В нем не указано, по какому принципу делать списки. Если убрать требование о формировании нескольких списков, то программа очень просто делается:
1. Вводишь строку 2. Заводишь два указателя - один указывает на текущий символ, второй на "свободное место". Им обоим присваиваешь адрес первого символа строки. 3. Берешь символ по первому указателю, если он '\0', то конец; иначе проверяшь с помощью isalpha() и в случае, если это буква, записываешь по адресу второго указателя и инкриментируешь его. В противном случае добавляешь значение второго указателя в список... |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Почему?
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
составляем граф связей слов. теперь надо найти все непересекающиеся пути так, что бы они покрывали все вершины и число путей было минимальным.
число путей не может быть меньше числа несвязных компонент. походу это NP-полная задача. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |