Помощь - Поиск - Пользователи - Календарь
Полная версия: Строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Гость
Задача: вывести строку без повторяющихся символов
Farru
а вот и сама прогаsmile.gif
Артемий
Ну и попробуй там ввести aaaaaarteeemmm и радуйся результату..
(Farru - ты автор темы?)

Добавлено через 5 мин.
Когда-то решал так, но это не очень красивый способ,не знаю пойдет тебе...
var
s: string;
b: byte;
i,count: integer;
begin
s := 'aaaaaaarteeemmmm';
for b := 1 to 255 do begin
for i:= 1 to length(s) do
if s[i] = chr(b) then
inc(count);
for i:= 1 to count - 1 do begin
if (count>=2) then
delete(s,pos(chr(b),s),1);
end;
count := 0;
end;
writeln(s);
readln
end.
Farru
Цитата(Артемий @ 18.11.2007 17:58) *

(Farru - ты автор темы?)


угу..просто потом зарегилась
Артемий
Тогда прошу прощения..не понял сразу.. smile.gif
я имел ввиду что твой способ не работает..
Farru
а насчет радости результату...что-то не получается порадоваться..sad.gif
самое интеренсое:от меня трубуется удались все последующие вхождения или удалить вообще все повторяющиеся символы, включая первое вхождение?
volvo
Цитата
вывести строку без повторяющихся символов
То есть,
"vvolvoo" -> "volvo"
или последние "vo" тоже уже не должны повторяться, и должно быть "vol"?
Farru
Цитата(volvo @ 18.11.2007 18:24) *

То есть,
"vvolvoo" -> "volvo"
или последние "vo" тоже уже не должны повторяться, и должно быть "vol"?

как мне только что объяснили, "vvolvoo"->"l"
Malice
Цитата(Farru @ 18.11.2007 18:51) *

как мне только что объяснили, "vvolvoo"->"l"

Тогда примерно вот так должно работать:
for i:=1 to length (s) do
if (pos (s[i],copy (s,1,i-1))=0) and
(pos (s[i],copy (s,i+1,255))=0) then write (s[i]);

Farru
Спасибо огромноеsmile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.