![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
NEFFboy |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Дана строка. Преобразовать ее, удалив каждый нечетный символ * и повторив каждый символ, предшествующий *.
у меня только удаляет каждый нечетный символ *, киньте исодник, как повторить каждый символ, предшествующий *. Заранее спасибо! -------------------- не дня без строчки кода.
|
![]() ![]() |
hardcase |
![]()
Сообщение
#2
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: ![]() ![]() ![]() |
Сложно, однако, и нечитабельно.
Алгоритм - типичный pipeline. Так зачем его через махинации с текущим индексом делать? Код function TransformString(S: string): string; var res: string; // результат i: integer; asterCount: integer; //счетчик '*' nextChar: Char; // текущий символ prevChar: Char; // предыдущий записанный символ begin asterCount := 0; prevChar := #0; for i := 1 to Length(S) do begin // получаем следующий символ nextChar := S[i]; if nextChar = '*' then begin inc(asterCount); // дублируем предыдущий симовол if prevChar <> #0 then res := res + prevChar; // пропускаем запись нечетных '*' в результат if (asterCount mod 2) <> 0 then Continue; end; // записываем следующий символ в результат res := res + nextChar; prevChar := nextChar; end; TransformString := res; end; -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 11:08 |