字符串的完美度
来源:互联网 发布:为什么伤心会流泪知乎 编辑:程序博客网 时间:2024/04/30 08:09
题目详情
我们要给每个字母配一个1-26之间的整数,具体怎么分配由你决定,但不同字母的完美度不同,
而一个字符串的完美度等于它里面所有字母的完美度之和,且不在乎字母大小写,也就是说字母F和f的完美度是一样的。
现在给定一个字符串,输出它的最大可能的完美度。
例如:dad,你可以将26分配给d,25分配给a,这样整个字符串最大可能的完美度为77。
public class perfect { /* 在数组per[0-25]中存放的是a-z出现的次数 然后对per 进行排序 保证per[0]中的数字最大 最后per[0]*26+per[1]*25.... */ public static void main(String[] per) { String s = new String("JKazTQMw "); int a = perfect(s); System.out.println(a); } public static int perfect(String s) { int[] per = new int[26]; int k = 0; for (int i = 0; i < s.length() ; i++ ) { k = cal((int)s.charAt(i)); per[k]++; } for (int i = 0; i < per.length ; i++ ) System.out.print(per[i] + " "); System.out.println(""); per = sort(per); for (int i = 0; i < per.length ; i++ ) System.out.print(per[i] + " "); System.out.println(""); int sum = 0; k = 0; while (k < 26 && per[k] != 0) { sum += per[k] * (26 - k); k++; } return sum; } //将a放在per[0] public static int cal (int a) { if (a >= 65 && a <= 90) return a - 65; if (a >= 97 && a <= 122) return a - 97; return 0; } //冒泡排序 保证最大的数字在数组的起点 public static int[] sort(int[] per) { int temp = 0; for (int i = per.length - 1; i >= 0; i--) for (int j = i - 1; j >= 0; j--) if (per[i] > per[j]) { temp = per[i]; per[i] = per[j]; per[j] = temp; } return per; }}
- 字符串的完美度
- 字符串的完美度
- 字符串的完美度
- 字符串的完美度
- 字符串的完美度
- 字符串的完美度
- 字符串的完美度
- 字符串的完美度
- 字符串的完美度
- 字符串的完美度
- 字符串的完美度
- 字符串的完美度
- 字符串的完美度总结
- 字符串的完美度算法
- 挑战编程:字符串的完美度
- 在线编程:字符串的完美度
- 编程挑战:字符串的完美度
- 庞果网之字符串的完美度
- 数据结构中的各种树浅谈
- 小记
- 获取服务器相关信息
- 登录实现记住密码
- java的经历!
- 字符串的完美度
- 软件开发-理论性知识(三)
- chromium 代码分析(2)
- 在rails中实现下拉框 和 radio button 显示大系统表的 处理方式
- android 使用android.support.v7 添加ActionBar
- SQL Server脚本编写和批处理
- OCP-1Z0-053-V13.02-696题
- 以后有时间的话,应该做些什么呢?
- How To Create Directory In Java--创建单个目录,多个目录(子目录)