当前位置:七七学习网文档大全求职指南求职笔试面试笔试题目IT公司笔试常考的算法题» 正文

IT公司笔试常考的算法题

[10-10 21:21:19]   来源:http://www.77xue.com  笔试题目   阅读:8993
概要:Trial(0, N);}14、实现strstr功能,即在父串中寻找子串首次出现的位置。(笔试中常让面试者实现标准库中的一些函数)char * strstring(char *ParentString, char *SubString) {char *pSubString, *pPareString;for(char *pTmp=ParentString; *pTmp; pTmp++) {pSubString = SubString;pPareString = pTmp;while(*pSubString == *pPareString && *pSubString != '\0') {pSubString++;pPareString++;}if(*pSubString == '\0') return pTmp;}return NULL;}int main(int argc, char* argv[]) {char *ParentString = &quo
IT公司笔试常考的算法题,标签:驾照笔试题目,腾讯笔试题目,http://www.77xue.com

  Trial(0, N);

  }

  14、实现strstr功能,即在父串中寻找子串首次出现的位置。(笔试中常让面试者实现标准库中的一些函数)

  char * strstring(char *ParentString, char *SubString) {

  char *pSubString, *pPareString;

  for(char *pTmp=ParentString; *pTmp; pTmp++) {

  pSubString = SubString;

  pPareString = pTmp;

  while(*pSubString == *pPareString && *pSubString != '\0') {

  pSubString++;

  pPareString++;

  }

  if(*pSubString == '\0') return pTmp;

  }

  return NULL;

  }

  int main(int argc, char* argv[]) {

  char *ParentString = "happy birthday to you!";

  char *SubString = "birthday";

  printf("%s",strstring(ParentString, SubString));

  }

  15、现在小明一家过一座桥,过桥的时候是黑夜,所以必须有灯。现在小明过桥要1分,小明的弟弟要3分,小明的爸爸要6分,小明的妈妈要8分,小明的爷爷要12分。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30分就会熄灭。问小明一家如何过桥时间最短?(原本是个小小智力题,据说是外企的面试题,在这里用程序来求解)

  #include "stdafx.h"

  #define N 5

  #define SIZE 64

  // 将人员编号:小明-0,弟弟-1,爸爸-2,妈妈-3,爷爷-4

  // 每个人的当前位置:0--在桥左边, 1--在桥右边

  int Position[N];

  // 过桥临时方案的数组下标; 临时方案; 最小时间方案;

  int Index, TmpScheme[SIZE], Scheme[SIZE];

  // 最小过桥时间总和,初始值100;每个人过桥所需要的时间

  int MinTime=100, Time[N]={1, 3, 6, 8, 12};

  // 寻找最佳过桥方案。Remnant:未过桥人数; CurTime:当前已用时间;

  // Direction:过桥方向,1--向右,0--向左

  void Find(int Remnant, int CurTime, int Direction) {

  if(Remnant == 0) { // 所有人已经过桥,更新最少时间及方案

  MinTime=CurTime;

  for(int i=0; i=0; i++)

  Scheme = TmpScheme;

  } else if(Direction == 1) { // 过桥方向向右,从桥左侧选出两人过桥

  for(int i=0; i

  if(Position == 0 && CurTime + Time < MinTime) {

  TmpScheme[Index++] = i;

  Position = 1;

  for(int j=0; j

  int TmpMax = (Time > Time[j] ? Time : Time[j]);

  if(Position[j] == 0 && CurTime + TmpMax < MinTime) {

  TmpScheme[Index++] = j;

  Position[j] = 1;

  Find(Remnant - 2, CurTime + TmpMax, !Direction);

  Position[j] = 0;

  TmpScheme[--Index] = -1;

  }

  }

  Position = 0;

  TmpScheme[--Index] = -1;

  }

  } else { // 过桥方向向左,从桥右侧选出一个人回来送灯

  for(int j=0; j

  if(Position[j] == 1 && CurTime+Time[j] < MinTime) {

  TmpScheme[Index++] = j;

  Position[j] = 0;

  Find(Remnant+1, CurTime+Time[j], !Direction);

  Position[j] = 1;

  TmpScheme[--Index] = -1;

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9]  下一页


Tag:笔试题目驾照笔试题目,腾讯笔试题目求职指南 - 求职笔试面试 - 笔试题目
联系我们 | 网站地图 | 范文大全 | 管理知识 | 教学教育 | 作文大全 | 语句好词
Copyright http://www.77xue.com--(七七学习网) All Right Reserved.
1 2 3 4 5 6 7 8 9 10