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

部分IT公司笔试算法题

[10-10 21:21:19]   来源:http://www.77xue.com  笔试题目   阅读:8903
概要:}}}}int main(int argc, char* argv[]) {for(int i=0; i Scheme = TmpScheme = -1;Find(N, 0, 1); // 查找最佳方案printf("MinTime=%d:", MinTime); // 输出最佳方案for(int i=0; i=0; i+=3)printf(" %d-%d %d", Scheme, Scheme[i+1], Scheme[i+2]);printf("\b\b ");}16、20xx年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。如原始串为:ab**cd**e*12,处理后为*abcde12,函数并返回值为5。(要求使用尽量少的时间和辅助空间)
部分IT公司笔试算法题,标签:驾照笔试题目,腾讯笔试题目,http://www.77xue.com

  }

  }

  }

  }

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

  for(int i=0; i

  Scheme = TmpScheme = -1;

  Find(N, 0, 1); // 查找最佳方案

  printf("MinTime=%d:", MinTime); // 输出最佳方案

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

  printf(" %d-%d %d", Scheme, Scheme[i+1], Scheme[i+2]);

  printf("\b\b ");

  }

  16、20xx年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函数并返回值为5。(要求使用尽量少的时间和辅助空间)

  int change(char *str) { /* 这个算法并不高效,从后向前搜索效率要高些 */

  int count = 0; /* 记录串中字符'*'的个数 */

  for(int i=0, j=0; str; i++) { /* 重串首开始遍历 */

  if(str=='*') { /* 遇到字符'*' */

  for(j=i-1; str[j]!='*'&&j>=0; j--) /* 采用类似插入排序的思想,将*前面 */

  str[j+1]=str[j]; /* 的非*字符逐个后移,直到遇到*字符 */

  str[j+1] = '*';

  count++;

  }

  }

  return count;

  }

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

  char str[] = "ab**cd**e*12";

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

  printf("str2=%s, count=%d", str, change(str));

  }

  // 终于得到一个比较高效的算法,一个网友提供,估计应该和金山面试官的想法一致。算法如下:

  int change(char *str) {

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

  for(i=j; j>=0; j--) {

  if(str!='*') {

  i--;

  } else if(str[j]!='*') {

  str = str[j];

  str[j] = '*';

  i--;

  }

  }

  return i+1;

  }

  17、20xx年11月15日华为软件研发笔试题。实现一单链表的逆转。

  #include "stdafx.h"

  typedef char eleType; // 定义链表中的数据类型

  typedef struct listnode { // 定义单链表结构

  eleType data;

  struct listnode *next;

  }node;

  node *create(int n) { // 创建单链表,n为节点个数

  node *p = (node *)malloc(sizeof(node));

  node *head = p; head->data = 'A';

  for(int i='B'; i<'A'+n; i++) {

  p = (p->next = (node *)malloc(sizeof(node)));

  p->data = i;

  p->next = NULL;

  }

  return head;

  }

  void print(node *head) { // 按链表顺序输出链表中元素

  for(; head; head = head->next)

  printf("%c ", head->data);

  printf("\n");

  }

  node *reverse(node *head, node *pre) { // 逆转单链表函数。这是笔试时需要写的最主要函数

  node *p=head->next;

  head->next = pre;

  if(p) return reverse(p, head);

  else return head;

  }

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

上一页  [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