去哪兒校招杭州站軟件研發筆試題

    時間:2020-11-07 10:15:09 筆試題目 我要投稿

    2015去哪兒校招杭州站軟件研發筆試題

      9月23日參加去哪兒筆試題目了,我投的是研發崗位,筆試題目是三道程序設計題目。

    2015去哪兒校招杭州站軟件研發筆試題

      參加筆試的時候用c寫的,處理字符串很麻煩。由于時間關系,第三題邏輯有點不清粗。回來之后,我就把題目又用java寫了一遍。現在對第三題仍然不能夠完全解答出來。

      1,String padString(String string,int minLength,char padChar);

      就是在string前用padChar把string填充到至少minLength長度

      如("7",3'0'),得到的結果是"007";

      如("2012",3,'0'),的到的結果是"2012”;

      minLength可能是負數

      public class padString {

      public static void main(String[] args) {

      // TODO Auto-generated method stub

      }

      String padString(String string,int minLength,char padChar){

      if(minLength

      {

      return string;

      }

      StringBuilder sb = new StringBuilder();

      int pads = minLength - string.length();

      for(int i=0;i

      {

      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 class CommandParser {

      public static void main(String[] args) {

      CommandParser cp = new CommandParser();

      String res = null;

      res = cp.parseCommand("-name jack -age 20 -address \"HangZhou ZheDa Road\"");

      System.out.println(res);

      res = cp.parseCommand(" -name jack -age 20 -address \"HangZhou ZheDa Road\"");

      System.out.println(res);

      res = cp.parseCommand("-name jack -age 20 -address \"HangZhou ZheDa Road\"");

      System.out.println(res);

      res = cp.parseCommand("-name jack -age 20 -address \"HangZhou ZheDa Road \" ");

      System.out.println(res);

      }

      String parseCommand(String com)

      {

      //分解成多個參數-值對

      String pars[] = com.split("-");

      StringBuilder sb = new StringBuilder();

      sb.append("[-");

      String words[]=null;

      //循環抽取其中的命令和值

      for(int i=0;i

      {

      String tmp = pars.trim();

      //判斷這個值是否是非空格

      if(tmp!=null&&tmp.length()>0)

      {

      int j = tmp.indexOf(' ');

      int k = j;

      sb.append(tmp.substring(0,j));

      sb.append(' ');

      //找到下一個空格的地方

      while(k

      {

      k++;

      }

      sb.append(tmp.substring(k));

      if(i!=pars.length-1)

      {

      sb.append(',');

      }else

      {

      sb.append(']');

      }

      }

      }

      return sb.toString();

      }

      }

      3,dif(String str1,String str2);

      輸出兩個字符串中不同的的'字符,如果字符a在str1中出現,而沒有在str2當中出現,則輸出-a.相反,則輸出+a;

      字符串當中重復的子字符串不輸出。

      abcde,bcde 輸出-a

      dabc, aabcef 輸出+a,-d,+e,+f

      如 abcdefe,aabcadef輸出+a,+a,-e;

      public class StringDifferent {

      public static void main(String[] args) {

      StringDifferent sd = new StringDifferent();

      String res = null;

      res = sd.strDif("abcde", "bcde");

      System.out.println(res);

      res = sd.strDif("dabc", "aabcef");

      System.out.println(res);

      res = sd.strDif("abcdefg", "abcdefg");

      System.out.println(res);

      res = sd.strDif("abfg", "abcdefg");

      System.out.println(res);

      res = sd.strDif("afsdlf", "sdlfajsdlfjsd");

      System.out.println(res);

      }

      //這道題目相當于最長公共子序列的改進版,字符串進行二維存儲了之后,就沿著相應的規則下來

      //這樣做不知道對不對,只能這樣寫了

      String strDif(String str1, String str2) {

      StringBuilder sb = new StringBuilder();

      String tmp = null;

      // if(str1.length()>str2.length())

      // {

      // tmp = str1;

      // str1 = str2;

      // str2 = tmp;

      // }

      int dp[][] = new int[str1.length()+1][str2.length()+1];

      int len1 = str1.length();

      int len2 = str2.length();

      //進行dp的方法

      for(int i=1;i<=len1;i++)

      {

      for(int j=1;j<=len2;j++)

      {

      if(str1.charAt(i-1)==str2.charAt(j-1))

      {

      dp[j] = dp[i-1][j-1]+1;

      }

      }

      }

      // for(int i=0;i<=len1;i++)

      // {

      // for(int j=0;j<=len2;j++)

      // {

      // System.out.print(dp[j]+",");

      // }

      // System.out.println();

      // }

      int i = len1,j = len2;

      //如何獲取其中的字符串

      while(i>=0 && j>=0)

      {

      if(dp[j]==0)

      {

      if(i

      {

      tmp = "+"+str2.charAt(j-1);

      sb.insert(0, tmp);

      j--;

      }else

      {

      //判斷到頭的情況

      if(i==j && j==0)

      {

      break;

      }

      tmp = "-"+str1.charAt(i-1);

      sb.insert(0, tmp);

      i--;

      }

      }else{

      i--;

      j--;

      }

      }

      return sb.toString();

      }

      }

    【2015去哪兒校招杭州站軟件研發筆試題】相關文章:

    2015阿里校招研發工程師筆試題08-13

    網易2015校招筆試題09-09

    2015阿里校招運營專員筆試題08-21

    去哪兒2015校園招聘產品經理筆試題11-24

    京東2015應屆生校招筆試題09-14

    騰訊校招筆試題01-16

    2015百度校招產品經理筆試題目08-19

    2015年百度校招產品經理筆試題07-26

    阿里巴巴2015校招筆試題(含答案、解析)09-05

    騰訊校招筆試題目12-20

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      久久免费视频77 | 亚洲欧美国产老妇偷窥 | 亚洲午夜精品一级在线播放 | 日韩AV一本二本在线观看 | 亚洲精品国产丝袜久久 | 亚洲综合日韩精品国产A∨ 嫩草研究所久久久精品 |