微软Java面试题-按照字母排序
来源:互联网 发布:反恐精英全球攻势mac 编辑:程序博客网 时间:2024/05/22 17:34
1.对字符串进行排序,用任意一种编程语言来实现,不能使用现有的类,在排序中,字符串“Bc”,“Ad”,“aC”,“Hello”,“X man”,“little”,“During”,“day”能够排序成 “Ad”,"aC",“Bc”,“During”,“day”,“Hello”,“little”,“Hello”,也就是说,在排序的过程并不是传统的按照字符串排序,在排序中还需要将小写字母一并排序,也就是说a字符串要在B或b之前。
- import java.util.Arrays;
- import java.util.Comparator;
- /**
- * 微软面试题-按照字母排序.<br>
- * 小写字母在大写后面,字母B/b在字母A/a后面<br>
- *
- * @author 老紫竹 JAVA世纪网(java2000.net)
- *
- */
- class T {
- private static final int MASK = 0xFFDF; // 用来把小写变成大写
- public static int compare(String o1, String o2) {
- int length1 = o1.length();
- int length2 = o2.length();
- int length = length1 > length2 ? length2 : length1;
- int c1, c2;
- int d1, d2;
- for (int i = 0; i < length; i++) {
- c1 = o1.charAt(i);
- c2 = o2.charAt(i);
- d1 = c1 & MASK;
- d2 = c2 & MASK;
- if (d1 > d2) {
- return 1;
- } else if (d1 < d2) {
- return -1;
- } else {
- if (c1 > c2) {
- return 1;
- } else if (c1 < c2) {
- return -1;
- }
- }
- }
- if (length1 > length2) {
- return 1;
- } else if (length1 < length2) {
- return -1;
- }
- return 0;
- }
- public static void sortByPOPO(String[] args) {
- String tmp;
- for (int i = 0; i < args.length; i++) {
- for (int j = i + 1; j < args.length; j++) {
- if (compare(args[i], args[j]) > 0) {
- tmp = args[i];
- args[i] = args[j];
- args[j] = tmp;
- }
- }
- }
- // [Ad, aC, Bc, During, day, Hello, little, X man]
- System.out.println(Arrays.toString(args));
- }
- public static void main(String[] args) {
- String[] strs = { "Bc", "Ad", "aC", "Hello", "X man", "little", "During",
- "day" };
- sortByPOPO(strs);
- }
- }
- 微软Java面试题-按照字母排序
- 微软面试题-字符串数组按照字母排序
- 面试题题排序,字符串数组按照字母排序,不区分大小写比较
- 使用Java统计字母并且按照字母的次数排序
- 汉字按照字母排序
- Java list 按照 字母 拼音排序 对比大小
- 字符串数组按照字母排序
- string数组按照字母排序
- java如何把一篇英文按照空格分割并按照字母顺序排序
- Java认证:一道微软面试题
- java面试题:输出字符串每个字母出现的次数
- 一道微软面试题
- 微软面试题
- 微软面试题
- 微软面试题(转载)
- 微软面试题
- 微软面试题
- 微软面试题
- 缺少计算机引擎installscript请运行ISScript.msi解决方案
- JavaScript中的函数
- 兴趣,成就感,目标,结果,客户,学习
- 纸牌游戏开始
- 深入认识JavaScript中的this指针
- 微软Java面试题-按照字母排序
- servlet单实例多线程模式问题
- JAVA面试题:1的阶乘到100的阶乘相加的和,末位数是几?
- Java面试题:100的阶乘末尾有多少个零?
- 中企动力面试题--逻辑题,(3顶黑帽子,2顶白帽子),有多少人戴黑帽子?
- Informix数据库备份三法
- 在 ADO 和 ADO.NET 中管理离线数据
- Java面试题:1-100之间的数,被放在数组a[99]中,有一个数没有包含在其中,用java代码找出这个数
- 面试题:为什么你还没有找到工作?