去哪兒網2015校招軟體研發筆試題(杭州站)

來源:互聯網
上載者:User

標籤:去哪兒網2015校招軟體研發筆試題杭州站   則輸出-a.相反   則輸出+a   如果字元a在str1中出現   

1、String padString(String string,int minLength,char padChar);
    就是在string前用padChar把string填充到至少minLength長度
    如("7",3‘0‘),得到的結果是"007";
    如("2012",3,‘0‘),的到的結果是"2012”;

 minLength可能是負數


public static void main(String[] args) {System.out.println(padString("7", 3, '0'));System.out.println(padString("2012", 3, '0'));}static String padString(String string,int minLength,char padChar){int len = string.length();if(minLength<0 || minLength<len){return string;}StringBuffer sb = new StringBuffer();int pads = minLength - len;while(pads-->0){sb.append(padChar);}sb.append(string);return sb.toString();}

2、命令解析
對於命令
    -name jack -age 20 -address "HangZhou ZheDa Road"
要變成[-name jack, -age 20, -address "HangZhou ZheDa Road"]
命令由參數和值對組成,參數以-開頭,參數和值之間,值和值之間都是用空格隔開,
雙引號""之間的值當做一個整體
來處理。所有參數和值只包括英文字母,數字,減號和雙引號

public static void main(String[] args) {System.out.println(parser("-name jack -age 20 -address \"HangZhou ZheDa Road\""));System.out.println(parser("    -name jack -age 20 -address \"HangZhou ZheDa Road\""));System.out.println(parser("-name    jack -age 20    -address \"HangZhou ZheDa Road\""));System.out.println(parser("-name jack -age 20 -address \"HangZhou ZheDa Road   \"   "));}static String parser(String str){String params[] = str.split("-");for(int i=0;i<params.length;i++){params[i]=params[i].trim();//去掉前後空格params[i]=params[i].replaceAll("\\s+", " ");//去掉中間空格}StringBuffer sb = new StringBuffer();sb.append("[");for(int i=0;i<params.length;i++){if(params[i].length()!=0 && !params[i].equals("")){sb.append("-");sb.append(params[i]);if(i!=params.length-1){sb.append(", ");}}}sb.append("]");return sb.toString();}

3,dif(String str1,String str2);
 輸出兩個字串中不同的的字元,如果字元a在str1中出現,而沒有在str2當中出現,則輸出-a.相反,則輸出+a; 字串當中重複的子字串不輸出。<br>
 abcde,bcde 輸出-a <br>
 dabc, aabcef 輸出+a,-d,+e,+f <br>
 abcdefe,aabcadef輸出+a,+a,-e;
 
 思路:把26個字母映射成一個26大小的整數數組flag,初始全為0,a對應flag[0],如果在str2中出現,則加1,如果在str1中出現,則減1,
 最後遍曆這個數組,列印出現的次數即可。


public static void main(String[] args) {System.out.println(dif("abcde","bcde"));System.out.println(dif("dabc","aabcef"));System.out.println(dif("abcdefe","aabcadef"));}static String dif(String str1, String str2) {int flag[] = new int[26];StringBuffer sb = new StringBuffer();str1 = str1.toLowerCase().trim();str2 = str2.toLowerCase().trim();for(int i=0;i<str1.length();i++){flag[str1.charAt(i)-'a']--;}for(int i=0;i<str2.length();i++){flag[str2.charAt(i)-'a']++;}for(int i=0;i<flag.length;i++){//System.out.println("flag["+i+"]="+flag[i]);if(flag[i]<0){int count = Math.abs(flag[i]);for(int j=0;j<count;j++){sb.append("-");sb.append((char)(i+'a'));sb.append(",");}}else if(flag[i]>0){for(int j=0;j<flag[i];j++){sb.append("+");sb.append((char)(i+'a'));sb.append(",");}}}if(sb.lastIndexOf(",")==sb.length()-1)sb.deleteCharAt(sb.length()-1);return sb.toString();}




去哪兒網2015校招軟體研發筆試題(杭州站)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.