码迷,mamicode.com
首页 > 其他好文 > 详细

华为机试—名字的漂亮度

时间:2015-06-27 18:28:54      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:名字漂亮度   华为机试   漂亮度   

名字的漂亮度=26*字母个数最多的+25*字母个数其次的+24*字母个数再其次的(忽略大小写)+….+1*出现次数最小的。
输入:整数N,N个字符串
输出:N个字符串漂亮度

例如:
输入1 a
输出 26

c

#include<iostream>
#include<string>
#include<cctype>
#include<algorithm>
using namespace std;

bool cmp(int a, int b)
{
    return a>b;
}

int meili(const string &str)
{   
    int a[26]={0};
    int len=0,pos;
    for(int i=0;i<str.size();i++)
    {
        if(isupper(str[i]))
            pos=str[i]-65;
        else
            pos=str[i]-97;
        a[pos]++;
    }
    sort(a,a+26,cmp);
    for(i=0;a[i]!=0;i++)
    {
        len+=(26-i)*a[i];
    }
    return len;
}
int main(int argc,char *argv[])
{   
    int n;
    cin>>n;
    int *len=new int[n];
    string str;
    for(int i=0;i<n;i++)
    {
        cin>>str;
        len[i]=meili(str);
    }
    for(i=0;i<n;i++)
        cout<<len[i]<<endl;
    delete []len;
    return 0;
}

技术分享

java

import java.util.Arrays;
import java.util.Scanner;

public class nameMei {

    public int meili(String str) {
        int[] a = new int[26];// 默认值为0
        int len = 0, pos;
        for (int i = 0; i < str.length(); i++) {
            if (Character.isUpperCase(str.charAt(i)))
                pos = str.charAt(i) - 65;
            else
                pos = str.charAt(i) - 97;
            a[pos]++;
        }

        Arrays.sort(a);//从小到大
        for (int i = 25; a[i] != 0; i--)
            len += (i+1) * a[i];

        return len;
    }

    public static void main(String[] args) {
        nameMei nm = new nameMei();
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();

        int[] len = new int[n];

        String str;

        for (int i = 0; i < n; i++) {
            Scanner ss = new Scanner(System.in);
            str = ss.nextLine();
            len[i] = nm.meili(str);
        }

        for (int i = 0; i < n; i++)
            System.out.println(len[i]);

    }

}

技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载。

华为机试—名字的漂亮度

标签:名字漂亮度   华为机试   漂亮度   

原文地址:http://blog.csdn.net/wtyvhreal/article/details/46662045

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!