用户名: 密码: 企业 个人
当前位置:89学习网范文文章招聘应聘笔试2017亚马逊在线笔试题目» 正文

2017亚马逊在线笔试题目

[05-15 14:50:43]   来源:http://www.89xue.com  笔试   阅读:90
摘要:3. The output is the operation sequence.4. If the original array cannot make to the result array with stack push and pop, The output should be 'None'.5. The operation "push1" means push the first element of the original array to the stack.6. The operation "pop1" means pop the first。
2017亚马逊在线笔试题目,标签:笔试范文,http://www.89xue.com

  3. The output is the operation sequence.

  4. If the original array cannot make to the result array with stack push and pop, The output should be 'None'.

  5. The operation "push1" means push the first element of the original array to the stack.

  6. The operation "pop1" means pop the first element of the original array from the stack, and add this element to the tail

  of the result array.

  7. Please don't include any space in the output string.

  Sample1:

  Input:

  1 2 3 4

  1 2 3 4

  Output:

  push1|pop1|push2|pop2|push3|pop3|push4|pop4

  Sample2:

  Input:

  1 2 3 4

  4 3 2 1

  Output:

  push1|push2|push3|push4|pop4|pop3|pop2|pop1

  #include

  #include

  #include

  #include

  #include

  using namespace std;

  char* calculateOperationSequence(int *originalArray, int *resultArray, int length);

  inline bool isSpace(char x){

  return x == ' ' || x == '\r' || x == '\n' || x == '\r' || x == '\b' || x == '\t';

  }

  char * rightTrim(char *str){

  int len = strlen(str);

  while(--len>=0){

  if(isSpace(str[len])){

  str[len] = '\0';

  }else{

  break;

  }

  }

  return str;

  }

  char * getInputLine(char *buffer, int length){

  if(fgets(buffer,length, stdin)==NULL){

  return NULL;

  }

  rightTrim(buffer);

  if(strlen(buffer)<=0){

  return NULL;

  }

  return buffer;

  }

  int splitAndConvert(char* strings,int *array){

  char*tokenPtr = strtok(strings,",");

  int i=0;

  while(tokenPtr!=NULL){

  array[i] = atoi(tokenPtr);

  i++;

  tokenPtr=strtok(NULL,",");

  }

  return i;

  }

  int main(){

  char line[1000] = {0} ;

  while(getInputLine(line,1000)){

  int originalArray[30] = {0};

  int originalArrayLength = splitAndConvert(line,originalArray);

  if(originalArrayLength==0){

  break;

  }

  getInputLine(line, 1000);

  int resultArray[30] = {0};

  int resultArrayLength = splitAndConvert(line,resultArray);

  if(resultArrayLength==0){

  break;

  }

  char *operationSequence = calculateOperationSequence(originalArray, resultArray, resultArrayLength);

  if (NULL != operationSequence)

  { // 原来系统提供的代码。这里没有NULL判断

  cout<< operationSequence <

  free(operationSequence); // 自己加的

  }

  else

  cout<< "None" <

  }

  return 0;

  }

  //your code is here

  //下面才是让写代码的地方,其他的系统已经自动给出。主函数,只有一点点修改。

  char* calculateOperationSequence(int * originalArray, int * resultArray, int length)

  {

  if (NULL == originalArray || NULL == resultArray || length <= 0)

  return NULL;

  //使用一个栈模拟入栈和出栈操作就ok了。

  string str;

  stack st;

  int i = 0;

  int j = 0;

  st.push(originalArray[i]);

  char tmp[5] = "\0";

上一页  [1] [2] [3] [4]  下一页


Tag:笔试笔试范文招聘应聘 - 笔试