/*
給定長度小於100的一個字符串,區分大小寫的情況下統計其中字母的個數,
並按照由大到小的順序輸出.當字母個數一樣時,按照把先出現的字母放在前面.當字符串中沒有字母時,則不要輸出.
*/
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
#include <algorithm>
bool vec_sort(std::pair<char,int> X,std::pair<char,int>Y)
{
return X.second > Y.second;
}
int main()
{
std::string str = "aabbccdppppnahjdjaee890";
std::vector<int>Num(101,0);
std::vector<char>vec;
for (int i =0;i<str.size();i++)
{
if (str[i]>='A' && str[i]<='z')
{
vec.push_back(str[i]);
for (int j = 0;j < vec.size();j++)
{
if (vec[j] == str[i])
{
Num[j] = Num[j] + 1;
break;
}
}
}
}
std::vector<std::pair<char, int>>vec_pair;
for (int j =0;j<Num.size();j++)
{
if (Num[j]!=0)
{
vec_pair.push_back(std::make_pair(vec[j], Num[j]));
}
}
sort(vec_pair.begin(), vec_pair.end(), vec_sort);
for (auto it : vec_pair)
{
std::cout << it.first << " " << it.second << std::endl;
}
return 0;
}
提高編程能力 算法練習1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.