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;
Ребят, решал задачку на строки, зашел в тупик...
Разделитель — один из символов « ,.;:!?"'» (начиная с пробела и заканчивая апострофом). Буква — любой символ, отличный от разделителя. Слово — последовательность букв, ограниченная с каждой стороны разделителем или концом строки. Например, в строке «x9i23!слово, ,» два слова — «x9i23» и «слово».
Требуется произвести одно из следующих действий (при всех манипуляциях со словами разделители сохранять без изменений):
удалить все слова, которые начинаются и заканчиваются одной и той же буквой, и продублировать все остальные слова.
Цитата:
Originally posted by OMG
Помогите плз. Вот решал задачку зашел в тупик, запарился искать ошибки,решал заново-опять ошибки.
Разделитель — один из символов « ,.;:!?"'» (начиная с пробела и заканчивая апострофом). Буква — любой символ, отличный от разделителя. Слово — последовательность букв, ограниченная с каждой стороны разделителем или концом строки. Например, в строке «x9i23!слово, ,» два слова — «x9i23» и «слово».
Требуется произвести одно из следующих действий (при всех манипуляциях со словами разделители сохранять без изменений):
удалить все слова, которые начинаются и заканчиваются одной и той же буквой, и продублировать все остальные слова.
Помогите плз. Вот решал задачку зашел в тупик, запарился искать ошибки,решал заново-опять ошибки.
Разделитель — один из символов « ,.;:!?"'» (начиная с пробела и заканчивая апострофом). Буква — любой символ, отличный от разделителя. Слово — последовательность букв, ограниченная с каждой стороны разделителем или концом строки. Например, в строке «x9i23!слово, ,» два слова — «x9i23» и «слово».
Требуется произвести одно из следующих действий (при всех манипуляциях со словами разделители сохранять без изменений):
удалить все слова, которые начинаются и заканчиваются одной и той же буквой, и продублировать все остальные слова.
Исходный текст в студию!
Цитата:
Originally posted by OMG
Помогите плз. Вот решал задачку зашел в тупик, запарился искать ошибки,решал заново-опять ошибки.
Разделитель — один из символов « ,.;:!?"'» (начиная с пробела и заканчивая апострофом). Буква — любой символ, отличный от разделителя. Слово — последовательность букв, ограниченная с каждой стороны разделителем или концом строки. Например, в строке «x9i23!слово, ,» два слова — «x9i23» и «слово».
Требуется произвести одно из следующих действий (при всех манипуляциях со словами разделители сохранять без изменений):
удалить все слова, которые начинаются и заканчиваются одной и той же буквой, и продублировать все остальные слова.
Помогите плз. Вот решал задачку зашел в тупик, запарился искать ошибки,решал заново-опять ошибки.
Разделитель — один из символов « ,.;:!?"'» (начиная с пробела и заканчивая апострофом). Буква — любой символ, отличный от разделителя. Слово — последовательность букв, ограниченная с каждой стороны разделителем или концом строки. Например, в строке «x9i23!слово, ,» два слова — «x9i23» и «слово».
Требуется произвести одно из следующих действий (при всех манипуляциях со словами разделители сохранять без изменений):
удалить все слова, которые начинаются и заканчиваются одной и той же буквой, и продублировать все остальные слова.
Код: