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

Задача

Вводится строка. Требуется удалить из нее повторяющиеся символы и все пробелы. Например, если было введено "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.

Пример(ы) выполнения программы на языке Pascal

abc cde def
abcdef

Исходный код на языке программирования C

#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);
}

Пример(ы) выполнения программы на языке C

cpu gpu mb cooler
cpugmboler

Исходный код на языке программирования Python

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)

Пример(ы) выполнения программы на языке Python

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

Исходный код на языке программирования Basic

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$

Особенности решения на языке программирования Basic

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

Тема

Строки

Уровень сложности

Средний

Дата публикации

Комментарий

Вот так обход в цикле будет быстрее:

st=input('enter string: ')
newSt=''
for i in st:
    if i not in newSt and i!=' ': newSt+=i
print(newSt)