


Удалить повторы. Задание из Сириуса. СРОЧНО!
Удалить повторы
Дана строка 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);
}
}
помогите пожалуйста, срочно!
#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';
}
ты такой смешной, жаль что в аватарку не поместился) ..