序言

题型:20道选择(单选多选混合) + 3道编程

时间:2017.09.21 19:00 - 20:30

1. 题目及要求

  • [1] 删除字符串中重复字符

    题目大意

    • 输入字符串(未给长度限制),要求删除重复出现的字符(保留第一个)

    • 如:

      输入: Hello World
      输出:Helo Wrd

    • 内存限制:65536KB

  • [2] 寻找合并后数组的中位数

    题目大意

    • 给定两个数组,要求合并非重复元素并给出合并后数组的中位数

    • 如:

      输入:

      数组1:
      3
      1 2 3
      数组2:
      4
      3 4 5 6
      得到数组:1 2 3 4 5 6

      输出中位数:3.5

    • 内存限制:65536KB

  • [3] 非负整数第一个缺值

    题目大意

    • 输入数组元素个数,找出第一个缺失的非负整数

    • 如:

      输入:
      5(元素个数)
      -1
      1
      3
      5
      6

      输出:2

    • 内存限制:65536KB

2. 思路及解答

  • [1] 删除字符串中重复字符

    • 设置标记数组,记录重复元素,输出非重复元素
#include <stdio.h>
#include <string.h>void DeleteRepChar(char *s)
{int length = strlen(s);int i,j;for (i = 0; i < length; i++){for (j = i + 1; j < length; j++){if (s[i] == 0)continue;if (s[i] == s[j])s[j] = 0;}}i = 0;int n;for (i = 0, n = 0; i < length; i++){if (s[i] != 0)s[n++] = s[i];}
}int main()
{char arr[10000];fgets(arr, 10000, stdin);       //scanf("%s", arr);DeleteRepChar(arr);printf("%s", arr);return 0;
}
  • [2] 寻找合并后数组的中位数
#include <stdio.h>
#include <stdlib.h>
#include <string.h>int compare(const void *value1, const void *value2)
{return *(int *)value1 - *(int *)value2;     //升序
}double FindMedian(int n, int m, int *arrOne, int *arrTwo)
{int countOne = 0, countTwo = 0, count = 0;double res;int length = n + m;int arrFinal[length];while (countOne < n || countTwo < m){if (arrOne[countOne] == arrTwo[countTwo]){arrFinal[count++] = arrOne[countOne];countOne++;countTwo++;}else{if (arrOne[countOne] > arrTwo[countTwo]){arrFinal[count++] = arrTwo[countTwo];countTwo++;}else{arrFinal[count++] = arrOne[countOne];countOne++;}}if (countOne == n && countTwo < m){while (countTwo < m){arrFinal[count++] = arrTwo[countTwo++];}}if (countTwo == m && countOne < n){while (countOne < n){arrFinal[count++] = arrOne[countOne++];}}}if (count % 2 == 0)res = ((double)arrFinal[count/2] + (double)arrFinal[count/2 - 1]) / 2;elseres = (double)arrFinal[count/2];return res;
}int main()
{int n,m,i,j;scanf("%d", &n);int arrOne[n];for (i = 0; i < n; i++){scanf("%d", &arrOne[i]);}qsort(arrOne, n, sizeof(int), compare);scanf("%d", &m);int arrTwo[m];for (j = 0; j < m; j++){scanf("%d", &arrTwo[j]);}qsort(arrTwo, m, sizeof(int), compare);double res = FindMedian(n, m, arrOne, arrTwo);printf("%.1lf", res);return 0;
}
  • [3] 非负整数第一个缺值

    • 数值检测
#include <stdio.h>
#include <string.h>int FindMin(int n, int *array)
{int i = 0, num = 1;while (array[i] <= 0)i++;if (array[i++] != 1)return 1;while (i < n){if (array[i] == (++num))i++;elsereturn num;}return array[n - 1];
}int main()
{int n, i;scanf("%d", &n);int arr[n];for (i = 0; i < n; i++){scanf("%d", &arr[i]);}printf("%d", FindMin(n, arr));return 0;
}

2017.09.22

校园招聘-2017携程秋招后台开发笔试编程题相关推荐

  1. 网易雷火2020秋招平台开发笔试-编程题

    题一 题目描述 AABB盒(Axis-Aligned Bounding Box)是描述3D世界包围盒的一个长方体,他的每一边都平行于一个坐标平面,中心点,长.宽.高可以彼此不同,如下图所示: 现在给定 ...

  2. 美团点评2018春招后台开发方向编程题 - 题解

    美团这次的春招后端方向是两个编程题,没有考比较难的算法,如果日积月累刷题还是可以做出来的. 第一题:字符串距离 题目: 给出两个相同长度的由字符 a 和 b 构成的字符串,定义它们的距离为对应位置不同 ...

  3. 2017年携程旅游校招Java研发笔试编程题(3个)

    股票利润 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB 题目描述: 假如一个数组中存储了一个股票,在一天交易窗口 ...

  4. 2020秋招——XX校招笔试编程题:回文串

    回文串判断&打印给定字符串中的所有回文串 笔试时是纸质的,记错了indexOf()函数和charAt()函数,重大失误emmm,这样逻辑虽然都对了还是要gg,ww,反省中... 回文串:aba ...

  5. 科大讯飞2019秋招研究算法笔试编程题

    第一题 样例输入 2 5 60 59 20 30 90 100 5 60 59 20 10 10 100 样例输出 1 2 Hint 对于第一组数据,将59改成60即可 AC代码: def minst ...

  6. 2018年贝壳网校招(秋招)算法笔试编程题

    1.题目描述: 给定一个长度为N的序列A1到AN,求所有区间[L,R](1≤L≤R≤N)的极差之和,其中区间[L,R]的极差定义为AL到AR中的最大值与最小值之差. 思路:暴力求解,通过率36% 代码 ...

  7. 2019年秋招猿辅导笔试编程题解析字符串

    猿辅导笔试 编程题的解析字符串 5 A11B (AA)2A ((A2B)2)2G (YUANFUDAO)2JIAYOU A2BC4D2 输入如上,按照规则解析字符串 研究了下用栈写出来了,其实不难,加 ...

  8. 字节跳动2019春招第二次笔试编程题

    字节跳动2019春招第二次笔试编程题 1.变身程序员 题目描述 输入描述 输出描述 示例 示例1 示例2 示例3 分析 参考代码 2.特征提取 题目描述 输入描述 输出描述 示例 示例1 备注 分析 ...

  9. 华为秋招机试三道编程题(2021-09-01)

    通知:华为.阿里最新的秋招笔试编程题题目.思路以及参考代码已经全部整理好放在微信公众号[TechGuide]了,私信公众号回复[华为]或者[阿里]即可获得最实时.最详细的笔试题解啦! 通知:华为.阿里 ...

  10. 寒武纪2019秋招嵌入式软件开发笔试-牛客网刷题

    寒武纪2019秋招嵌入式软件开发岗笔试 1.单片机IO口开漏输出和推挽输出有什么区别? 我答的:单片机的IO口可以配置为开漏输出和推挽输出两种模式,它们的主要区别在于输出方式和驱动能力不同. 开漏输出 ...

最新文章

  1. 【C#串口编程计划】C#通讯类库构建
  2. 《微型计算机2014年》更新至12月下
  3. 时间序列预测——线性回归(上下界、异常检测),异常检测时候历史数据的输入选择是关键,使用过去历史值增加模型健壮性...
  4. 视觉特征--ORB系列
  5. python zipfile_Python中的zipfile模块使用详解
  6. pixhawk commander--navigator--modules之间的联系
  7. scrapy如何指定生成python3的项目_如何把阿里图标库的图标生成代码并应用于自己的项目...
  8. C# 参数签名字符串按 ASCII码排序,注意其中的坑
  9. 漫画:五分钟看懂车联网
  10. opencv4-图像操作
  11. 中表名字必须大写吗_pi network改名字的重要性—非常之重要!!
  12. Java高并发编程详解系列-单线程执行设计模式
  13. virtualenv: 未找到命令
  14. iframe 监听内部接口是否加载完成_低成本0基础打造自己的app之uni-app请求接口以及生命周期函数...
  15. JAVA笔记--数组和字符串常用方法
  16. netkit-ng安装使用
  17. Android SurfaceView概述
  18. 杰控连接mysql_杰控FameView在数据库连接和查询方面的应用
  19. 介质天线的设计原理_以水为媒介的介质天线的制作方法
  20. oracle查询备份backup失败,NBU备份Oracle问题,status96 和status6 典型报错

热门文章

  1. G - A Question of Ingestion Gym - 101673G
  2. 六足仿生机器人的控制与实现
  3. [推荐]《人一生要读的60本书》
  4. 给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
  5. UltraEdit编辑器无法使用快捷键全选ctrl+a功能失效解决办法
  6. 九爷带你了解 2017年3-4月企业面试题总结
  7. API获取天气数据方法——中国天气网数据API下载及处理
  8. django学习笔记(六)-----模型
  9. 宜宾学院谢江宜计算机基础题,宜宾学院2011-2012学年度下期期末公共课考试安排表.xls...
  10. 学安全测试需要考什么证书?