【原创】字符串的完美度
// test.cpp : 定义控制台应用程序的入口点。
// editor: Visual C++ 2010 express
// system: win7 x32
// create: 2013-07-24 15:56FM
// author: jiang kejun <jinhua_k9@163.com>
#include "stdafx.h"
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
int perfect(const string &s);
int _tmain(int argc, _TCHAR* argv[])
{
string s;
cout<<"please:"<<"";
cin>>s;
cout<<perfect(s)<<endl;
system("pause");
return 0;
}
string az="abcdefghijklmnopqrstuvwxyz";
const int N = 26;
int perfect(const string &s)
{
int i=0,j=0,pos=0,v=0;
int arr[N]={0};
while(i<s.length())
{
pos = az.find(s.at(i));
if(pos!=-1){
arr[pos]+=1;
}
i++;
}
sort(&arr[0], &arr[N]);
for(;j<N;j++){
if(arr[j]>0){
v+= (j+1)*arr[j];
}
}
return v;
}