Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Этюды программистов, Решение 
:(
    Опции темы
Jojo
Дата 24.12.2004, 06:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 9.12.2003

Репутация: нет
Всего: нет



Есть задача для студента мехмата smile
я то уже не студент smile мозги атрафировались

Пусть слово - это последоватетьность от 1 до 8 символов, не включающая пробелов Ввводится n слов А1, ... , An. Можно ли из переупорядочить так, чтобы получилась "цепочка", т.е. для каждого слова Aj его первая буква совпадать с последней буквой предыдущего слова, а последняя буква Aj с первой буквой последующего слова; соотвественно последняя буква последнего слова должна совпадать с первой буквой первого слова. В "цепочку" входят все n слов без повторений. Дать ответ в виде "Можно"/"Нельзя". Если такое упорядочение возможно, то вывести какую-нибудь цепочку слов. Слова при выводе разделяются пробелами!

Решение нада пож-та
Кому не лень

Было б неплохо найти решебник к книге
Ч.Уэзерелла "Этюды для программистов"
PM MAIL   Вверх
Domestic Cat
Дата 24.12.2004, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: нет
Всего: 172



Первое что пришло в голову (сил проверять уже нет), причем это только алгоритм:
берем 2 массива, далее перебираем все слова. Если обозначить одно слово буквой, первую букву слова через индекс 1, последнюю - 2, то в массивах буквы должны быть расположены так:
а[] б[]
а1 а2
б1 б2
ц1 ц2
......
первый столбец - первый массив, второй - второй массив.
Тогда для каждой буквы из первого массива а[i] должна быть такая же буква из второго массива (без учета б[i]). Перебрав все элементы из первого массива и найдя пару каждому, получаем ответ "можно".
Потому алгоритм такой : перебираем все элементы массива а; внутри цикла помещаем второй цикл с перебором всех элементов массива б (за исключением случая i==j). Если а[i]== б[j] зануляем б[j] и переходим к а[i+1]. Если для а[i] нет пары б[j] ответ "нельзя".

Чтобы вывести цепочку слов, достаточно при каждом обнаружении пары фиксировать номера элементов из обеих массивов.


--------------------

PM   Вверх
Pakshin A. S.
Дата 24.12.2004, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: нет
Всего: 61



М
 
Название темы не отражает её суть! Лучше тему было назвать так: "Создание цепочки слов". Ещё раз замечу, приму меры...

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.