#include <stdio.h>
#include <stdlib.h>
char* remove_duplicated(char* str, int size) {
int frequency[256] = {0};
int new_size = 0;
for(int i=0; str[i]!='\0'; i++)
{
if(frequency[(unsigned char) str[i]] == 0) {
frequency[(unsigned char) str[i]]++;
new_str[new_size] = str[i];
new_size++;
}
}
new_str[new_size] = '\0';
return new_str;
}
int main(void) {
char str[30] = "aaabbbcccAXXYYZZZZ";
int count[30] = {0};
char* new_str = remove_duplicated(str, 30);
for(int i=0; new_str[i] != '\0'; i++)
{
for(int j=0; str[j]!='\0'; j++)
{
if(new_str[i]==str[j])
count[i]++;
}
}
for(int i=0; new_str[i]!='\0'; i++)
printf("%c occurs %d times \n", new_str
[i
], count
[i
]);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmNoYXIqIHJlbW92ZV9kdXBsaWNhdGVkKGNoYXIqIHN0ciwgaW50IHNpemUpIHsKCWludCBmcmVxdWVuY3lbMjU2XSA9IHswfTsKCWNoYXIqIG5ld19zdHIgPSBtYWxsb2Moc2l6ZSk7CglpbnQgbmV3X3NpemUgPSAwOwoJCglmb3IoaW50IGk9MDsgc3RyW2ldIT0nXDAnOyBpKyspCgl7CgkJaWYoZnJlcXVlbmN5Wyh1bnNpZ25lZCBjaGFyKSBzdHJbaV1dID09IDApIHsKICAgIAkJZnJlcXVlbmN5Wyh1bnNpZ25lZCBjaGFyKSBzdHJbaV1dKys7CiAgICAJCW5ld19zdHJbbmV3X3NpemVdID0gc3RyW2ldOwogICAgCQluZXdfc2l6ZSsrOwoJCX0KCX0KCQoJbmV3X3N0cltuZXdfc2l6ZV0gPSAnXDAnOwoJCglyZXR1cm4gbmV3X3N0cjsKfQoKaW50IG1haW4odm9pZCkgewoJCgljaGFyIHN0clszMF0gPSAiYWFhYmJiY2NjQVhYWVlaWlpaIjsKCWludCBjb3VudFszMF0gPSB7MH07CgljaGFyKiBuZXdfc3RyID0gcmVtb3ZlX2R1cGxpY2F0ZWQoc3RyLCAzMCk7CgkKCWZvcihpbnQgaT0wOyBuZXdfc3RyW2ldICE9ICdcMCc7IGkrKykKCXsKICAgCQlmb3IoaW50IGo9MDsgc3RyW2pdIT0nXDAnOyBqKyspCiAgIAkJewogICAgICAgCQlpZihuZXdfc3RyW2ldPT1zdHJbal0pCiAgICAgICAgICAgCQljb3VudFtpXSsrOwogICAJCX0KCX0KCglmb3IoaW50IGk9MDsgbmV3X3N0cltpXSE9J1wwJzsgaSsrKQogICAgCXByaW50ZigiJWMgb2NjdXJzICVkIHRpbWVzIFxuIiwgbmV3X3N0cltpXSwgY291bnRbaV0pOwogICAgCQogICAgZnJlZShuZXdfc3RyKTsKCQoJcmV0dXJuIDA7Cn0K