ItsJustMe
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Дана строка. Определить, есть ли в данной строке одинаковые слова, и заменить каждое повторяющееся слово, словом «повтор», начиная со второго Нам ещё нельзя использовать 'copy', 'delete'.. и т.д. | Когда встречаешь некие ограничения, всегда хочется спросить "Why?". К тому же, в ограничениях, что дали тебе, присутствует загадочное "и т.д.". Когда я учился, нам никаких ограничений никто не ставил. Таких дебильных я имею ввиду. Ну ладно, хватить философствовать Код: //may contain bugs... procedure Split (const Delimiter: Char; Input: String; const Strings: TStrings); begin Assert(Assigned(Strings)); Strings.Clear; Strings.Delimiter := Delimiter; Strings.DelimitedText := Input; end; var list, a: TStringList; s: String; i: Integer; begin WriteLn('Enter your crappy string:'); ReadLn(s); a:=TStringList.Create(); Split(' ', s, a); list:=TStringList.Create(); list.Duplicates:=dupError; WriteLn('Result:'); for i := 0 to a.Count-1 begin try list.Add(a[i]); except on EStringListError do a[i] := 'повтор'; end; Write(a[i], ' ') end end. |
|