2017百度面试现场coding算法一

求字符串中字符的出现次数,并按照字典序排列
输入:“I am a student a boy”
输出:[(I,1),(a,2),(am,1),(boy,1),(student,1)]
(注意字符串截取的规则,注意最后单词的处理,注意比较函数的引用)

struct Item{
    string word;
    int count;
};
bool compare(Item &a,Item &b)
{
    return a.word<b.word;
}
vector<Item> wordNum(string weight)
{
    vector<Item> vec;
    int len=weight.length();
    int s=0;
    for(int i=0;i<=len;i++)
    {
        if(weight[i]==' '||weight[i]=='\0')
        {   string str=weight.substr(s,i-s);
            s=i+1;
            Item temp;
            int flag=0;
            for(int j=0;j<vec.size();j++)
            {
                if(vec[j].word==str)
                {   vec[j].count++;
                    flag=1;
                    break;
                }
            }
            if(flag==0)
            {
                temp.count=1;
                temp.word=str;
                vec.push_back(temp);
            }
        }
    }
    sort(vec.begin(),vec.end(),compare);
    return vec;
}
    原文作者:Vivian0990308
    原文地址: https://blog.csdn.net/bingningning/article/details/70522101
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞