提高編程能力 算法練習1


/*
給定長度小於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;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章