Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Удалить повторы. Задание из Сириуса. СРОЧНО!

Удалить повторы
Дана строка S
. Необходимо удалить из неё все повторы символов: символ с индексом i
необходимо удалить, если существует индекс j
такой, что j<i
и Si=Sj
.

Входные данные

На вход программы подаётся строка без пробелов, содержащая символы таблицы ASCII.

Выходные данные

Программа должна вывести исходную строку, из которой удалены все повторяющиеся символы.

Примеры
Ввод
Вывод
abc13a1b2z3c
abc132z
QWasd123
QWasd123

вот мой код, но он выдаёт ошибку:
#include <iostream>
#include <set>

using namespace std;

int main() {
set <char> s;
char d;
while(cin>>d){
s.insert(d);
}
for (int i = 0; i<s.size(); i++){
for (int j = 0; j<s.size(); j++){
if (s.find(j)==s.find(i)){
s.erase(s.find(j));
}
}
}
for (int i = 0; i < s.size(); i++){
cout << s.find(i);
}
}
помогите пожалуйста, срочно!

По дате
По рейтингу
Аватар пользователя
Новичок
1234567891011121314151617181920212223
 #include <iostream> 
#include <string> 
using namespace std; 
struct String { 
    String(const string& line) : line(line) {} 
    string line; 
    string unique()const { 
        string box; 
        for (auto ch : line) { 
            if (box.find(ch) == string::npos) { 
                box += ch; 
            } 
        } 
        return box; 
    } 
}; 
int main() { 
    string line; 
    cin >> line; 
    String source{ line }; 
    line = source.unique(); 
    cout << line << '\n'; 
} 
Аватар пользователя
Мыслитель

ты такой смешной, жаль что в аватарку не поместился) ..