2017 CVTE春招内推专场 C/C++软件开发岗笔试编程题
先来一波吐槽:选择题全是不定项选择,考的内容在我看来,“反正我接受唔到咯”。
比如:
1.Windows操作系统某个通信机制(具体题目忘了,反正答案我选了个熟悉的名词“消息队列”)。
EXM???服,我还真从来没关注过Windows的任何机制。手动黑人问号。
x. 以下哪些属于Linux的发行版本?A.OpenSUSE B.Red-hat C. CentOS D.Ubuntu
EXM???所谓的考Linux就是这样考的?再次手动黑人问号。
还有一题问的是Linux设备调用接口什么的,没搞过,真不清楚,瞎选。
其他的还挺常规,比如问哪些属于交换排序、哪些排序算法序列的初始状态不影响比较次数、多态、死锁、计算机网络(考的是FTP的传输模式)等。
-----------------分割线------------------
两道题,都很简单。
1. 给定一个字符串,找到第一个只出现一次的字符的下标,找不到输出-1。
sample:
输入:“abcdefcba”
输出:3
解法:先遍历字符串,用一个map记录每个字符出现的次数,再次遍历字符串,找到第一个只出现一次的字符,复杂度为O(n)。
#include <iostream>
#include <string>
#include <cstring>
#include <map>
using namespace std; int getCharIndex(const char *str)
{
map<char, int> cmap;
int length = strlen(str);
for (int i = ; i < length; ++i)
++ cmap[str[i]]; int ret = -;
for (int i = ; i < length; ++i)
if (cmap[str[i]] == )
{
ret = i;
break;
} return ret;
} int main()
{
string str;
cin >> str;
cout << getCharIndex(str.c_str()) << endl;
}
2. n个人围着圆桌坐,编号1~n,从第k个开始报数,报到m者出列,后一个继续从1开始报数。问最后一个出列者的编号。输入n, k, m.
sample1:
输入:3 1 1
输出:3
sample2:
输入:3 2 2
输出:1
解法:首先,看到这种题目就感觉会有特别的规律,但思前想后还是归纳不出来,只好用循环链表直接模拟,复杂度O(nm)。
#include <iostream> using namespace std; typedef struct Node
{
int num;
Node *next;
} Node; // 构造循环链表
void construct(Node **head, int n)
{
*head = new Node;
(*head)->num = ;
(*head)->next = NULL;
Node *pNode = *head; for (int i = ; i <= n; i++)
{
Node *pNew = new Node;
pNew->num = i;
pNew->next = NULL;
while (pNode->next != NULL)
pNode = pNode->next; pNode->next = pNew;
pNode = pNode->next;
}
pNode->next = *head;
} int solve(int n, int k, int m)
{
// 过滤非法输入
if (n < || k < || k > n || m <= )
return ; // 数到1就出列的情况下,即从k开始逐个出列
// 若k = 1, 最后一个为n; 否则为k-1.
else if (m == )
return (k == ? n : k-); // 构造循环链表
Node *head = NULL;
construct(&head, n); // 从k开始报数,故先跳到第k个
Node *pNode = head;
for (int i = k; i > ; --i)
pNode = pNode->next; // 模拟报数n-1次, 每次出列一人,删除出列的结点
int num = ;
Node *pPrev;
for (int i = ; i < n - ; i++)
{
while (num < m)
{
pPrev = pNode;
pNode = pNode->next;
++num;
}
Node *pToDel = pNode;
pNode = pNode->next;
pPrev->next = pNode;
delete pToDel;
num = ;
}
int ret = pNode->num;
delete pNode; // 避免内存泄露,释放最后一个结点
return ret;
}
int main()
{
int n, k, m;
int t;
cin >> t;
while (t--)
{
cin >> n >> k >> m;
cout << solve(n, k, m) << endl;
}
}
总结:编程题很简单,但选择题感觉错了挺多的,估计笔试都过不了,有点不开心。反正我GG了,后面那批兄弟姐妹们加油。
2017 CVTE春招内推专场 C/C++软件开发岗笔试编程题的更多相关文章
- cvte春招测试面试记录
cvte春招测试面试记录,挂在了综合面试(hr面)...尽量回忆面试的问题(可能不完全). 技术面一面: 1.自我介绍 2.根据实习项目问,智能客服怎么测正确率之类的. 3.测试人脸解锁 4.测试微信 ...
- 2017百度春招<不等式排列>
题目: 度度熊最近对全排列特别感兴趣,对于1到n的一个排列,度度熊发现可以在中间根据大小关系插入合适的大于和小于符号(即 '>' 和 '<' )使其成为一个合法的不等式数列.但是现在度度熊 ...
- 2017百度春招<有趣的排序>
题目 度度熊有一个N个数的数组,他想将数组从小到大排好序,但是萌萌的度度熊只会下面这个操作:任取数组中的一个数然后将它放置在数组的最后一个位置.问最少操作多少次可以使得数组从小到大有序? #inclu ...
- 2017百度春招<度度熊买帽子的问题>
题目: 度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同.度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 数组中找到第三小的数字 注意边界条件 用STL中的set来 ...
- 上海洋码头(www.ymatou.com)急招技术人才(职位:互联网软件开发工程师,.NET网站架构师,Web前端开发工程师,高级测试工程师,产品经理)
对公司招聘职位有兴趣的童鞋可以把简历发送到zhangzhiqiang@ymatou.com,我们HR会快速给你答复. 互联网软件开发工程师 岗位职责: 1.参与洋码头各个平台(www.ymatou.c ...
- CVTE前端笔试编程题
这些题目是做完笔试之后,在别的地方找到的,现在附上. 1.(1)这题考察的怎么把参数转换为数组,然后再截取你想要的位数. function C(){ var a_args=Array.prototyp ...
- 【字节校招】【实习】【内推】字节跳动春招(校招或实习均可)以及日常实习内推ing
本人是年前刚刚入职抖音的应届生,职业认证还未来的级更改,但是这些都不重要.重要的是我们不能错过优秀的你~ 字节跳动的相关福利我就不介绍了,技术实习生是400/天,房补是1500/月,三餐免费,下午茶, ...
- [找工作] 2019秋招|从春招到秋招,Java岗经验总结(收获AT)
转自(有更多) https://blog.csdn.net/zj15527620802/article/month/2018/10 前言 找工作是一件辛酸而又难忘的历程.经历过焦虑.等待.希望,我们最 ...
- 痛吻过YY寻找到真爱的三非渣本春招之路
写下这篇文章可能就不是大家乐于见闻的面经了,更多是深入一些面试细节. 前言 我猜拿到了BAT等一线互联网公司Offer的小伙伴或者那些老鸟看到这条标题的时候会不屑一顾,认为YY这种级别的公司是属于二线 ...
随机推荐
- php 实例说明 socket通信机制
php 实例说明 socket通信机制 张映 发表于 2010-04-24 分类目录: php 一,socket是什么 什么是socket 所谓socket通常也称作"套接字",用 ...
- win8.1 64位+oracle11g R2 64位 +powerdesigner破解版 64位+PL/SQL
安装时搜索了很多帖子,很多就是复制粘贴(完全不需要什么IP,host),有的版本不对,有的版本太老,今天决定贴出自己的处女贴 oracle的安装很简单,不需要说什么了,PL/SQL真是恶心死 orac ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose)&&莫对算法
这里跟曼哈顿最小生成树没有太大的关系. 时间复杂度证明: [BZOJ2038 小Z的袜子 AC代码] 排序方式: 第一关键字:l所在的块: 第二关键字:r从小到大. #include<cstdi ...
- MySQL安装 MySQL5.7.10免安装版配置,mysql5.7.10免安装版
MySQL5.7.10免安装版配置,mysql5.7.10免安装版 最新版的 Mysql 不提供图形界面的安装了, 下载下来是一个压缩包的形式, 那么我们如何来使用它呢, 让它为我们工作呢? 环境: ...
- Bootstrap兼容IE8
使用BootStrap3.x写的公司一个响应式项目在IE下面错误百出,经过一番折腾.全部解决了IE8下的兼容问题. 这里汇总一下,希望对大家有所帮助. 1. Bootstrap UI整体在IE8下变窄 ...
- 《微信小程序七日谈》- 第六天:小程序devtool隐藏的秘密
<微信小程序七日谈>系列文章: 第一天:人生若只如初见: 第二天:你可能要抛弃原来的响应式开发思维: 第三天:玩转Page组件的生命周期: 第四天:页面路径最多五层?导航可以这么玩: 第五 ...
- Ubuntu14.04 安装Oracle JDK
在Ubuntu 14.04 中安装 Oracle JDK6,7 或 8. 准备:添加add-apt-repository工具 #apt-get install python-software-prop ...
- Linux编程之PING的实现
PING(Packet InterNet Groper)中文名为因特网包探索器,是用来查看网络上另一个主机系统的网络连接是否正常的一个工具.ping命令的工作原理是:向网络上的另一个主机系统发送ICM ...
- ESRI ArcGIS 产品线资源网站大集合
友情提示:国外网站国内访问速度较慢,可以配合VPN等进行加速访问. 首先给出官方网站,以下所有链接均可在官方找到. http://www.esri.com 紧接着是产品线: http://www.es ...
- ubuntu-14.10下,安装gcc交叉编译器遇到问题及解决方法
一 下载gcc-arm-none-eabi-4_9 安装成功后上报错误: ./gcc-arm-none-linux-gnueabi-gcc: No such file or directory 网上查 ...