校园招聘-2017携程秋招后台开发笔试编程题
序言
题型: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携程秋招后台开发笔试编程题相关推荐
- 网易雷火2020秋招平台开发笔试-编程题
题一 题目描述 AABB盒(Axis-Aligned Bounding Box)是描述3D世界包围盒的一个长方体,他的每一边都平行于一个坐标平面,中心点,长.宽.高可以彼此不同,如下图所示: 现在给定 ...
- 美团点评2018春招后台开发方向编程题 - 题解
美团这次的春招后端方向是两个编程题,没有考比较难的算法,如果日积月累刷题还是可以做出来的. 第一题:字符串距离 题目: 给出两个相同长度的由字符 a 和 b 构成的字符串,定义它们的距离为对应位置不同 ...
- 2017年携程旅游校招Java研发笔试编程题(3个)
股票利润 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB 题目描述: 假如一个数组中存储了一个股票,在一天交易窗口 ...
- 2020秋招——XX校招笔试编程题:回文串
回文串判断&打印给定字符串中的所有回文串 笔试时是纸质的,记错了indexOf()函数和charAt()函数,重大失误emmm,这样逻辑虽然都对了还是要gg,ww,反省中... 回文串:aba ...
- 科大讯飞2019秋招研究算法笔试编程题
第一题 样例输入 2 5 60 59 20 30 90 100 5 60 59 20 10 10 100 样例输出 1 2 Hint 对于第一组数据,将59改成60即可 AC代码: def minst ...
- 2018年贝壳网校招(秋招)算法笔试编程题
1.题目描述: 给定一个长度为N的序列A1到AN,求所有区间[L,R](1≤L≤R≤N)的极差之和,其中区间[L,R]的极差定义为AL到AR中的最大值与最小值之差. 思路:暴力求解,通过率36% 代码 ...
- 2019年秋招猿辅导笔试编程题解析字符串
猿辅导笔试 编程题的解析字符串 5 A11B (AA)2A ((A2B)2)2G (YUANFUDAO)2JIAYOU A2BC4D2 输入如上,按照规则解析字符串 研究了下用栈写出来了,其实不难,加 ...
- 字节跳动2019春招第二次笔试编程题
字节跳动2019春招第二次笔试编程题 1.变身程序员 题目描述 输入描述 输出描述 示例 示例1 示例2 示例3 分析 参考代码 2.特征提取 题目描述 输入描述 输出描述 示例 示例1 备注 分析 ...
- 华为秋招机试三道编程题(2021-09-01)
通知:华为.阿里最新的秋招笔试编程题题目.思路以及参考代码已经全部整理好放在微信公众号[TechGuide]了,私信公众号回复[华为]或者[阿里]即可获得最实时.最详细的笔试题解啦! 通知:华为.阿里 ...
- 寒武纪2019秋招嵌入式软件开发笔试-牛客网刷题
寒武纪2019秋招嵌入式软件开发岗笔试 1.单片机IO口开漏输出和推挽输出有什么区别? 我答的:单片机的IO口可以配置为开漏输出和推挽输出两种模式,它们的主要区别在于输出方式和驱动能力不同. 开漏输出 ...
最新文章
- 【C#串口编程计划】C#通讯类库构建
- 《微型计算机2014年》更新至12月下
- 时间序列预测——线性回归(上下界、异常检测),异常检测时候历史数据的输入选择是关键,使用过去历史值增加模型健壮性...
- 视觉特征--ORB系列
- python zipfile_Python中的zipfile模块使用详解
- pixhawk commander--navigator--modules之间的联系
- scrapy如何指定生成python3的项目_如何把阿里图标库的图标生成代码并应用于自己的项目...
- C# 参数签名字符串按 ASCII码排序,注意其中的坑
- 漫画:五分钟看懂车联网
- opencv4-图像操作
- 中表名字必须大写吗_pi network改名字的重要性—非常之重要!!
- Java高并发编程详解系列-单线程执行设计模式
- virtualenv: 未找到命令
- iframe 监听内部接口是否加载完成_低成本0基础打造自己的app之uni-app请求接口以及生命周期函数...
- JAVA笔记--数组和字符串常用方法
- netkit-ng安装使用
- Android SurfaceView概述
- 杰控连接mysql_杰控FameView在数据库连接和查询方面的应用
- 介质天线的设计原理_以水为媒介的介质天线的制作方法
- oracle查询备份backup失败,NBU备份Oracle问题,status96 和status6 典型报错
热门文章
- G - A Question of Ingestion Gym - 101673G
- 六足仿生机器人的控制与实现
- [推荐]《人一生要读的60本书》
- 给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
- UltraEdit编辑器无法使用快捷键全选ctrl+a功能失效解决办法
- 九爷带你了解 2017年3-4月企业面试题总结
- API获取天气数据方法——中国天气网数据API下载及处理
- django学习笔记(六)-----模型
- 宜宾学院谢江宜计算机基础题,宜宾学院2011-2012学年度下期期末公共课考试安排表.xls...
- 学安全测试需要考什么证书?