微信小程序开发之小程序架构篇的图解与分析
573
2022-11-06
字符串的完美度
题目详情
我们要给每个字母配一个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; }}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~