去哪儿校招杭州站软件研发笔试题

时间: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