题目链接
代码
int cmp_str(const void *a, const void *b) {
return strcmp(a, b);
}
bool areOccurrencesEqual(char * s){
int n = 1;
qsort(s, strlen(s), sizeof(char), cmp_str);
/*
for (int i = 0; i < strlen(s); ++i) {
printf("%c ", s[i]);
}
*/
if (strlen(s) < 2) {
return true;
}
for (int i = 0; i < strlen(s) - 1; ++i) {
if (s[i] != s[i+1]) {
//printf("%d ",n);
break;
}
n++;
}
//printf("%d ",n);
for (int i = n; i < strlen(s); i += n) {
//printf("%d ",i);
int tmp = n;
if (tmp == 1 && s[i] == s[i+1]) {
return false;
}
while (--tmp) {
if (s[i] != s[i+1])
return false;
i++;
}
i -= n - 1;
}
return true;
}