题解 | #字符统计#

字符统计

http://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0

#include <iostream>
using namespace std;
int main()
{
    string input;
    while(cin>>input)
    {
        int length = input.length();
        char tmp[length]; int itmp =0;
        int num[length];  int inum;
        //确定tmp he num
        for(int i=0; i<length; i++)
        {
            if(input.find(input[i]) == i)
            {
                inum = 1;
                //如果第一次出现就存起来
                tmp[itmp] = input[i];
                //找到这个字符出现的次数
                for(int j=i+1; j<length; j++)
                {
                    if(input[j] == input[i])
                    {
                        inum++;
                    }
                }
                num[itmp] = inum;
                itmp ++;
            }
        }
        //冒泡排序
        for(int i=0; i<itmp; i++)
        {
            for(int j=0; j<itmp-i-1;j++)
            {
                if(num[j]<num[j+1])
                {
                    swap(tmp[j], tmp[j+1]);
                    swap(num[j], num[j+1]);
                }
                if(num[j]==num[j+1])
                {
                    if(tmp[j]>tmp[j+1])
                    {
                        swap(tmp[j], tmp[j+1]);
                        swap(num[j], num[j+1]);
                    }
                }
            }
        }
        //输出结果
        for(int i=0; i<itmp; i++)
        {
            cout<<tmp[i];
        }
        cout<<endl;
    }
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务