Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ребят, решал задачку на строки, зашел в тупик...

15K
19 декабря 2005 года
OMG
1 / / 19.12.2005
Помогите плз. Вот решал задачку зашел в тупик, запарился искать ошибки,решал заново-опять ошибки.


Разделитель — один из символов « ,.;:!?"'» (начиная с пробела и заканчивая апострофом). Буква — любой символ, отличный от разделителя. Слово — последовательность букв, ограниченная с каждой стороны разделителем или концом строки. Например, в строке «x9i23!слово, ,» два слова — «x9i23» и «слово».

Требуется произвести одно из следующих действий (при всех манипуляциях со словами разделители сохранять без изменений):

удалить все слова, которые начинаются и заканчиваются одной и той же буквой, и продублировать все остальные слова.
269
19 декабря 2005 года
Greenering
892 / / 04.02.2003
Цитата:
Originally posted by OMG
Помогите плз. Вот решал задачку зашел в тупик, запарился искать ошибки,решал заново-опять ошибки.


Разделитель — один из символов « ,.;:!?"'» (начиная с пробела и заканчивая апострофом). Буква — любой символ, отличный от разделителя. Слово — последовательность букв, ограниченная с каждой стороны разделителем или концом строки. Например, в строке «x9i23!слово, ,» два слова — «x9i23» и «слово».

Требуется произвести одно из следующих действий (при всех манипуляциях со словами разделители сохранять без изменений):

удалить все слова, которые начинаются и заканчиваются одной и той же буквой, и продублировать все остальные слова.


Исходный текст в студию!

1.8K
28 декабря 2005 года
LM(AL/M)
332 / / 20.12.2005
Цитата:
Originally posted by OMG
Помогите плз. Вот решал задачку зашел в тупик, запарился искать ошибки,решал заново-опять ошибки.


Разделитель — один из символов « ,.;:!?"'» (начиная с пробела и заканчивая апострофом). Буква — любой символ, отличный от разделителя. Слово — последовательность букв, ограниченная с каждой стороны разделителем или концом строки. Например, в строке «x9i23!слово, ,» два слова — «x9i23» и «слово».

Требуется произвести одно из следующих действий (при всех манипуляциях со словами разделители сохранять без изменений):

удалить все слова, которые начинаются и заканчиваются одной и той же буквой, и продублировать все остальные слова.



Код:
Const DELIMITERS: set of char = [ ' ', ... (* -- put here your set of chars*) ];

function isAlpha(c: char): boolean;
 begin
   isAlpha := not (c IN DELIMITERS);
 end;

function processLine(s: string): string;
 begin

 output := '';
 s := ' ' + s + ' ';
 word := '';

 for i:=1 to length(s) do begin
  c := s;
 
  if isAlpha(c) then begin
    word := word + c;
    continue;
  end;

  {else:}
  if length(word) <> 0 then begin
    if word[1] = word[length(word)] then
    word := ''   {-- delete word}
    else
    word := word + word;  {-- duplicate word}
  end;

  output := output + word + c;
  word := '';    

 end;

 ouput := copy(output, 2, length(output) - 2);  {-- cut the lead and final spaces, added at start}
 processLine := output;

 end;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог