对一篇英文短文进行统计排序(标点不考虑)。生成这样的结果: 整理出现的26(也可能不足26)个字母,根据字母出现的数量由多到少排序。若数量相同则按照字母表顺序列。 生成的结果大致为“ffffffffffffffffffffeeeeeeerrrrrrzzzzzzaaabbccu”。
2015-09-16 19:57
726 查看
public class Z { /** * @对一篇英文短文进行统计排序(标点不考虑)。生成这样的结果: * 整理出现的26(也可能不足26)个字母,根据字母出现的数量由多到少排序。 * 若数量相同则按照字母表顺序列出。 生成的结果大致为“ffffffffffffffffffffeeeeeeerrrrrrzzzzzzaaabbccu”。 */ public static void main(String[] args) { String input = getRandomStr(10); System.out.println(input); System.out.println(operate("基本信息HR简历编号姓名(与身份证护照一致)性别M国籍个人成就 2014年以Android App获得“创青春”全国大学生创业大赛移动互联网创业专项赛银奖并申请获得软件著作权")); } public static String operate(String input) { int[] times = new int[26]; char temp; for (int i = 0;i<input.length();i++) { temp = filter(input.charAt(i)); if('a'<= temp && temp <= 'z') { times[temp-'a']++; } } StringBuilder res = new StringBuilder(); int maxTimes = Integer.MAX_VALUE; int minIndex = 25; while(maxTimes != 0) { maxTimes = 0; minIndex = 25; for(int i = 0; i < times.length; i++) { if(times[i]==0) continue; if(times[i] > maxTimes) { maxTimes = times[i]; minIndex = i; } } for(int i = 0;i < maxTimes;i++) { res.append((char)('a'+minIndex)); } times[minIndex] = 0; } return res.toString(); } public static char filter(char a) { if('A'<=a&&a<='Z') { a+='a'-'A'; } return a; } /** * @param N * @产生长度为N的随机字母字符串 */ public static String getRandomStr(int N) { StringBuilder res =new StringBuilder(); for(int i= 0;i<N;i++) { char temp = (char) ('a'+Math.random()*26); res.append(temp); } return res.toString(); } }
相关文章推荐
- 剑指Offer系列---(25)从上往下打印二叉树
- jQuery 操作css
- JQuery源码学习(2.1.1)之 版本结构 ---- day1
- 【剑指Offer】替换空格
- caffe模型的使用
- JVM调优总结 + jstat 分析
- 前端性能优化(五)
- 去除img图片之间的空隙css样式
- 前端性能优化(四)
- 解析JSON数据(二)
- 常用API(StringBuffer类和正则表达式以及常用的一些类)
- CSS
- jquery 动画效果函数
- 解决js 在onkeydown事件按键停顿问题
- html初学-基础
- HTML&CSS Learning Notes 4
- Jquery ajax请求导出Excel表格
- 前端性能优化(三)
- jsp中四个作用域的区别
- 前端性能优化(二)