Удаление из строки повторяющихся символов

Вводится строка. Требуется удалить из нее повторяющиеся символы и все пробелы. Например, если было введено «abc cde def», то должно быть выведено «abcdef».

Проще всего задачу решить, если формировать результирующую строку в другой переменной, а не изменять значение переменной, которой была присвоена введенная строка.

Извлекать каждый символ введенной строки. Если он не встречается в новой строке и не является пробелом, то добавлять его в конец новой строки.

Pascal



var
s1,s2: string;
c: char;
i: byte;
begin
readln(s1);
s2 := '';
for i:=1 to length(s1) do begin
c := s1[i];
if (pos(c,s2) = 0) and (c <> ' ') then
s2 := s2 + c
end;
writeln(s2);
end.



abc cde def
abcdef

Язык Си



#include < string.h>
main() {
char s[100], s_new[100];
char c, i, j;
gets(s);
j = 0;
for (i=0; i< strlen(s); i++) {
c = s[i];
if (strchr(s_new,c) == NULL && c != ' ') {
s_new[j] = c;
j += 1;
}
}
s_new[j] = '\0';
puts(s_new);
}



cpu gpu mb cooler
cpugmboler

Python


удалить повторяющиеся символы в строке python

# Вариант 1

s = input()
s_new = ''
for i in range(len(s)):
if s_new.find(s[i]) == -1 and s[i] != ' ':
s_new += s[i]
print(s_new)


# Вариант 2

s = input()
s_new = ''

for i in s:
if i not in s_new and i != ' ':
s_new += i

print(s_new)




a a b d c a c k l c d f
abdcklf

Basic-256



input s$
s_new$ = mid(s$,1,1)
for i=2 to length(s$)
a$ = mid(s$,i,1)
if instr(s_new$,a$) = 0 and a$ <> " " then
s_new$ = s_new$ + a$
endif
next i
print s_new$

Если изначально s_new$ присвоить пустую строку, то вызов функции instr() вызывает ошибку.

Подписаться
Уведомить о
guest

1 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Сергей
Сергей
6 месяцев назад

njg

Pascal


var
s1,s2: string;
c: char;
i: byte;
begin
readln(s1);
s2 := '';
for i:=1 to length(s1) do begin
c := s1[i];
if (pos(c,s2) = 0) and (c ' ') then
s2 := s2 + c
end;
writeln(s2);
end.



abc cde def
abcdef
Язык Си


#include < string.h>
main() {
char s[100], s_new[100];
char c, i, j;
gets(s);
j = 0;
for (i=0; i< strlen(s); i++) {
c = s[i];
if (strchr(s_new,c) == NULL && c != ' ') {
s_new[j] = c;
j += 1;
}
}
s_new[j] = '\0';
puts(s_new);
}



cpu gpu mb cooler
cpugmboler
Python

удалить повторяющиеся символы в строке python

# Вариант 1

s = input()
s_new = ''
for i in range(len(s)):
if s_new.find(s[i]) == -1 and s[i] != ' ':
s_new += s[i]
print(s_new)


# Вариант 2

s = input()
s_new = ''

for i in s:
if i not in s_new and i != ' ':
s_new += i

print(s_new)




a a b d c a c k l c d f
abdcklf
Basic-256


input s$
s_new$ = mid(s$,1,1)
for i=2 to length(s$)
a$ = mid(s$,i,1)
if instr(s_new$,a$) = 0 and a$ " " then
s_new$ = s_new$ + a$
endif
next i
print s_new$

Если изначально s_new$ присвоить пустую строку, то вызов функции instr() вызывает ошибку.