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

部分IT公司笔试算法题

[10-10 21:21:19]   来源:http://www.77xue.com  笔试题目   阅读:8903
概要:#include "stdafx.h"int IsEchoNum(int num) {int tmp = 0;for(int n = num; n; n/=10)tmp = tmp *10 + n%10;return tmp==num;}int main(int argc, char* argv[]) {int num = 12321;printf("%d %d\n", num, IsEchoNum(num));}22、删除字符串中的数字并压缩字符串(神州数码以前笔试题),如字符串”abc123de4fg56”处理后变为”abcdefg”。注意空间和效率。(下面的算法只需要一次遍历,不需要开辟新空间,时间复杂度为O(N))#include "stdafx.h"void delNum(char *str) {int i, j=0;// 找到串中第一个数字的位子for(i=j=0; s
部分IT公司笔试算法题,标签:驾照笔试题目,腾讯笔试题目,http://www.77xue.com

  #include "stdafx.h"

  int IsEchoNum(int num) {

  int tmp = 0;

  for(int n = num; n; n/=10)

  tmp = tmp *10 + n%10;

  return tmp==num;

  }

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

  int num = 12321;

  printf("%d %d\n", num, IsEchoNum(num));

  }

  22、删除字符串中的数字并压缩字符串(神州数码以前笔试题),如字符串”abc123de4fg56”处理后变为”abcdefg”。注意空间和效率。(下面的算法只需要一次遍历,不需要开辟新空间,时间复杂度为O(N))

  #include "stdafx.h"

  void delNum(char *str) {

  int i, j=0;

  // 找到串中第一个数字的位子

  for(i=j=0; str && (str<'0' || str>'9'); j=++i);

  // 从串中第一个数字的位置开始,逐个放入后面的非数字字符

  for(; str; i++)

  if(str<'0' || str>'9')

  str[j++] = str;

  str[j] = '\0';

  }

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

  char str[] = "abc123ef4g4h5";

  printf("%s\n", str);

  delNum(str);

  printf("%s\n", str);

  }

  23、求两个串中的第一个最长子串(神州数码以前试题)。如"abractyeyt","dgdsaeactyey"的最大子串为"actyet"。

  #include "stdafx.h"

  char *MaxSubString(char *str1, char *str2) {

  int i, j, k, index, max=0;

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

  for(j=0; str2[j]; j++) {

  for(k=0; str1[i+k]==str2[j+k] && (str2[i+k] || str1[i+k]); k++);

  if(k>max) { // 出现大于当前子串长度的子串,则替换子串位置和程度

  index = j; max = k;

  }

  }

  char *strResult = (char *)calloc(sizeof(char), max+1);

  for(i=0; i

  strResult = str2[index++];

  return strResult;

  }

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

  char str1[] = "abractyeyt", str2[] = "dgdsaeactyey";

  char *strResult = MaxSubString(str1, str2);

  printf("str1=%s\nstr2=%s\nMaxSubString=%s\n", str1, str2, strResult);

  }

  24、不开辟用于交换数据的临时空间,如何完成字符串的逆序(在技术一轮面试中,有些面试官会这样问)

  #include "stdafx.h"

  void change(char *str) {

  for(int i=0,j=strlen(str)-1; i

  str ^= str[j] ^= str ^= str[j];

  }

  }

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

  char str[] = "abcdefg";

  printf("strSource=%s\n", str);

  change(str);

  printf("strResult=%s\n", str);

  return getchar();

  }

  25、删除串中指定的字符(做此题时,千万不要开辟新空间,否则面试官可能认为你不适合做嵌入式开发)

  #include "stdafx.h"

  void delChar(char *str, char c) {

  int i, j=0;

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

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


Tag:笔试题目驾照笔试题目,腾讯笔试题目求职指南 - 求职笔试面试 - 笔试题目

《部分IT公司笔试算法题》相关文章

联系我们 | 网站地图 | 范文大全 | 管理知识 | 教学教育 | 作文大全 | 语句好词
Copyright http://www.77xue.com--(七七学习网) All Right Reserved.
1 2 3 4 5 6 7 8 9 10