微软Java面试题-按照字母排序
生活随笔
收集整理的這篇文章主要介紹了
微软Java面试题-按照字母排序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.對(duì)字符串進(jìn)行排序,用任意一種編程語言來實(shí)現(xiàn),不能使用現(xiàn)有的類,在排序中,字符串“Bc”,“Ad”,“aC”,“Hello”,“X man”,“l(fā)ittle”,“During”,“day”能夠排序成 “Ad”,"aC",“Bc”,“During”,“day”,“Hello”,“l(fā)ittle”,“Hello”,也就是說,在排序的過程并不是傳統(tǒng)的按照字符串排序,在排序中還需要將小寫字母一并排序,也就是說a字符串要在B或b之前。
查看復(fù)制到剪切板打印import?java.util.Arrays; ?? import?java.util.Comparator; ?? ?? /** ? ?*?微軟面試題-按照字母排序.<br> ? ?*?小寫字母在大寫后面,字母B/b在字母A/a后面<br> ? ?*? ? ?*?@author?老紫竹?JAVA世紀(jì)網(wǎng)(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); ?? ?? ??} ?? }?? import java.util.Arrays;
import java.util.Comparator;/*** 微軟面試題-按照字母排序.<br>* 小寫字母在大寫后面,字母B/b在字母A/a后面<br>* * @author 老紫竹 JAVA世紀(jì)網(wǎng)(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);}
}
查看復(fù)制到剪切板打印
轉(zhuǎn)載于:https://www.cnblogs.com/hibernate3-example/archive/2009/02/21/2493040.html
總結(jié)
以上是生活随笔為你收集整理的微软Java面试题-按照字母排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jsp登录后数据采集---奇怪的Apac
- 下一篇: 天生一对Maven2+Jetty --