题解 | #字符统计#
字符统计
http://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0
这类题一个思路,用字符对应的ascii码做下标,按题目要求顺序打印就可以了。
for循环的i=1000,可以优化下取最多的字符次数,减少循环次数。tmp['z']也可以优化。
#include "stdio.h"
#include "string.h"
char str[1001] = {0};
int tmp['z'] = {0};
int main(void) {
int i, j;
scanf("%s", str);
int len = strlen(str);
for (i = 0; i < len; i++) {
tmp[str[i]] ++;
}
for (i = 1000; i > 0; i--) {
for (j = '0'; j <= '9'; j++) {
if (tmp[j] == i) {
printf("%c", j);
}
}
for (j = 'a'; j <= 'z'; j++) {
if (tmp[j] == i) {
printf("%c", j);
}
}
}
return 0;
}
查看14道真题和解析