#include <stdio.h>
#include <stdint.h>
void pop(char* str, int pos){
int n;
for (size_t i=pos; i<255; i++){
if (*(str+i) == '\0'){
return;
}
*(str+i) = *(str+i+1);
}
return;
}
int is_in(char* str, int n, char check){
for (size_t j=0; j<n; j++){
if (check == *(str+j)){
return 1;
}
}
return 0;
}
void remove_duplicates(char *str) {
char found_char[255];
int found_char_size = 0;
for (size_t i=0; i<255;){
if (*(str+i) == '\0'){
return;
}
if ( is_in(found_char, found_char_size, *(str+i)) ){
pop(str, i);
} else {
found_char[found_char_size] = *(str+i);
found_char_size++;
i++;
}
}
}
// void remove_duplicates(char *str) {
// char last= *(str);
// for (size_t i=1; i<255;){
// if (*(str+i) == '\0'){
// return;
// }
// if(*(str+i) == last){
// pop(str, i);
// } else {
// last = *(str+i);
// i++;
// }
// }
// return;
// }
int main() {
char str[101];
fgets(str, sizeof(str), stdin);
// Remove newline
uint8_t i = 0;
while (str[i]) {
if (str[i] == '\n') {
str[i] = '\0';
break;
}
i++;
}
remove_duplicates(str);
printf("%s", str);
return 0;
}
Input
programming
Expected Output
progamin