题解 | #字符统计#
字符统计
http://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0
纯C
数组第一数据记录字符数量,第二数据记录字符
最开始想用hash表来存字符数量的,后来发现需要重新牌序就还需要扩展数组实现
/
#include<stdio.h>
#include<string.h>
int main(void){
char str[1000];
int i,j;
int temp[2];
while(scanf("%s",str) != EOF){
int hash[150][2] = {0};
int len = strlen(str);
for(i=0;i<len;i++){
hash[str[i]][0]++;
hash[str[i]][1] = str[i];
}
for(i=0;i<150;i++){
for(j=i;j<150;j++){
if(hash[j][0] > hash[i][0]){
temp[0] = hash[j][0];
temp[1] = hash[j][1];
hash[j][0] = hash[i][0];
hash[j][1] = hash[i][1];
hash[i][0] = temp[0];
hash[i][1] = temp[1];
}else if(hash[j][0] == hash[i][0]){
if(hash[j][1] < hash[i][1]){
temp[1] = hash[j][1];
hash[j][1] = hash[i][1];
hash[i][1] = temp[1];
}
}
}
}
for(i=0;hash[i][0]!=0;i++){
printf("%c",hash[i][1]);
}
printf("\n");
}
return 0;
}