华为机试—名字的漂亮度
2015-06-27 16:04
363 查看
名字的漂亮度=26*字母个数最多的+25*字母个数其次的+24*字母个数再其次的(忽略大小写)+….+1*出现次数最小的。
输入:整数N,N个字符串
输出:N个字符串漂亮度
例如:
输入1 a
输出 26
c
java
输入:整数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 ; 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 ; 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]); } }
相关文章推荐
- [Hibernate]对Hibernate不是很全面了解。
- spring配置定时器
- 前端开发学习随笔-------jquery.data()
- 设置GRUB密码及重置密码
- 程序员书籍
- imac打开terminal终端器
- C#趣味程序---理财高手
- crtmpserver组网部署方案
- python文件和目录操作
- 按照对象的某一属性进行排序
- 【Oracle篇】Oracle的客户端工具
- mediaPlayer的一些坑爹问题 以及解决surfview播放视频时候有黑屏闪现的问题
- iOS 学习资料大全
- Course Schedule I II LeetCode Java
- crtmpserver组网部署方案
- ClientDataSet复制
- 基于UDP的网络编程
- 大共享免费云服务器 Linux Nginx php mysql phpwind 性能测试
- Android实现ButterKnife
- html下拉框根据数据库的值选中默认值