51nod 1182 完美字符串

声明一个数组来存字符串每个字符出现的次数。然后用一下sort()就好了。

#include 
#include 
#include 
#include 
#include 

const int MAX = 1e5 + 5;
char arr[MAX];
int sum[150];

int main()
{
	scanf("%s", arr);
	int lenth = strlen(arr);
	for (int i = 0; i < lenth; ++i)
	{
		sum[tolower(arr[i])]++;
	}
	std::sort(sum + 'a', sum + 'a' + 26);
	int res = 0, score = 26;
	for (int i = 'a' + 25; i >= 'a' && sum[i]; --i)
	{
		res += (sum[i] * (score--));
	}
	std::cout << res << std::endl;
	return 0;
}



你可能感兴趣的:(数学思维_习题)