Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача на строки (удалить вхождения)

Автор: eXtractor 10.12.2006 23:01

Звучит так:
«Ввести строку символов. Удалить из нее все слова, целиком составленные из вхождений не более, чем двух букв. Например, 'ансамбль АББА' → 'ансамбль'».
Хотя бы общий принцип решения…

Автор: eXtractor 11.12.2006 2:19

Up.

Ну срочно надо!

Автор: Алена 11.12.2006 2:28

Ну, срочно так срочно... Разбить строку на слова сможешь? Одна из прикрепленных тем в разделе задачи именно этому посвящена... Потом каждое слово проверяешь на количество входящих в него букв... Я бы сделала это, используя множество (как раз в нем все символы могут храниться в единственном экземпляре, просто посчитать их количество и все...)

Алгоритма хватит, или нужна реализация?

Автор: eXtractor 11.12.2006 11:01

Спасибо за отклик. Общие пути решения понятны, на слова разбивать умею. Алгоритма хватит.
UPD: А-а, только без множеств, пожалуйста.

Автор: volvo 13.12.2006 15:54

Цитата
только без множеств, пожалуйста.
Без множеств - так без множеств... Выделяешь слова, и с каждым из них делаешь следующее:

s := '';
for i := 1 to length(_word) do
if pos(_word[i], s) = 0 then s := s + _word[i];

if length(s) > 2 then { В слове используется больше 2-х букв }
else { все нормально, букв не больше чем 2 }
Идея понятна?

Автор: eXtractor 14.12.2006 2:38

Идея понятна, спасибо огромное!

Автор: eXtractor 28.12.2006 0:56

Вопрос по пониманию задачи:

Цитата("eXtractor")
«…целиком составленные из вхождений не более, чем двух букв…».
— что это значит?

Я так понял, что слова «аа» и «абба» подходят, и «абввба» — нет. Я правильно понял?